問題タブ [concurrentdictionary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
81 参照

vb.net - ConcCurrentDictionary 初期化

ConcurrentDictionary を宣言して初期化することは可能ですか? 多分辞書のようなもの:

0 投票する
2 に答える
376 参照

c# - Add() を使用するために ConcurrentDictionary から IDictionary にキャストする必要があるのはなぜですか?

ConcurrentDictionaryがあり、その関数を使用したい場合は、次のAdd()ようにキャストする必要がありますIDictionary

質問ConcurrentDictionary と IDictionaryは、プライベート メソッドを使用して明示的にConcurrentDictionary実装しているためだと教えてくれます。IDictionary

私の質問:なぜそのようにConcurrentDictionary実装されているのですか? 実装されたインターフェースの使用を隠すことの利点は何ですか?

0 投票する
2 に答える
1378 参照

c# - Parallel.ForEach 中に、この .NET コレクションを追加または更新するにはどうすればよいですか?

ファイルのリストがあり、各ファイルにはFooデータのリストが含まれています。現在、同じ Foo データ (例: Id = 1) が複数のファイルに存在する可能性がありますが、より新しいデータが既存のデータを上書きします。

各データをメモリ内コレクションに読み込んでいます。

私がファイルを読んでいるとき(emがいくつかあるため)、私も使用していますParallel.ForEach(files, file => { .. });

どうやってこれを行うのかわかりません。

を使用することを考えていましたが、where句を使用するConcurrentDictionary方法がわかりませんでした。AddOrUpdate

助言がありますか?

0 投票する
1 に答える
1685 参照

c# - long (int64) を hashCode として使用し、並行辞書に IEqualityComparer を引き続き使用する

並行辞書で自作の IEqualityComparer と GetHashCode を使用すると問題が発生します。

以下のクラス (2 つのプロパティを使用して簡略化) は、次のように実装すると完璧に機能します。

.

ほぼ同じクラスを作成しましたが、通常の IEqualityComparer インターフェースの代わりに少し変更を加えたので、long / int64 hascodes を生成できました (クラスが保持するプロパティがますます多くなると、同じハッシュコードを持つ複数の値に遭遇するため)。

だから私は同じハスコードを取得する変更を減らしたかった. したがって、より大きな数値を使用し、可能であれば 10000 を掛けて、アクションの小数もいくつか取得したいと考えました。

したがって、私はこのインターフェースを作成しました:

プロパティクラスを変更して、次のようにします。

GetHashCode はうまくいきました。これまでのところ問題ありません。

しかし...次のようにIEqualityComparerをconcurrentdictionaryに追加しようとすると:

次のエラーが表示されます。

エラー 3 引数 1: 'HasCodeTestForUniqueResult.TwoUintsKeyInfoInt64.EqualityComparerOneUintAndTwoStringKeyInfo' から 'System.Collections.Generic.IEqualityComparer' に変換できません D:\Users\mldz\Documents\visual studio 2012\HashCodeTestForUniqueResult\HashCodeTestForUniqueResult\Form1.cs 109 140 HashCodeTestForUniqueResult

デフォルトの System.Collections.Generic.IEqualityComparer の int 型と、独自の GetHashCode ジェネレーターからの long / int64 の結果との間に競合があることを理解しています。しかし、これを解決して長いハッシュコードを使用できるようにする方法はありますか?

敬具、

マティス

PS上記のコードは、テストして問題を再現するためのものです。