問題タブ [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 投票する
1 に答える
1015 参照

c# - ConcurrentDictionary からリスト マッピングを安全に削除する

単純な型をリストにマップする ConcurrentDictionary があります。

AddOrUpdate()を使用して、最初の値が追加されたときのリストの初期化と、リストへの後続の値の追加の両方に対応できます。

ただし、削除については同じではありません。私が次のようなことをした場合:

...対応するリストに値がなくなった場合にキーを完全に削除することを意図している場合(概念的には参照カウントに似ています)、誰かが直後にリストに何かを追加した可能性があるため、競合状態のリスクがあります空かどうかを確認しました。

この単純な例ではリストを使用していますが、通常、そのようなシナリオでは ConcurrentBag または ConcurrentDictionary を使用しており、リスクは非常に似ています。

対応するコレクションが空の場合、ロックに頼らずにキーを安全に削除する方法はありますか?

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

c# - 同じキーを複数回追加する ConcurrentDictionary

ConcurrentDictionaryこのデータキーが以前に追加されたかどうかを確認するために使用したいのですが、以前に追加したキーをまだ追加できるようです。

コード:

テストコード:

結果:

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

c# - ConcurrentDictionary.TryGetValue で OUT 値を操作するには?

ConcurrentDictionary がどのように機能するかを理解するのを手伝ってください。私はこれを持っています:

クライアントでいくつかの値を変更し、変更を ConcurrentDictionary に保存する必要があります。そうですか?

または私はそうすることができます、そしてそれで十分でしょうか?

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

c# - ConcurrentDictionary の仕組みを理解しようとする

値がまだ存在しない場合は、値を 0 に初期化したいと思います。それ以外の場合は、既存の値をインクリメントする必要があります。

この時点で、ディクショナリには 1 と 2 のキーがあり、それぞれ値は 0 です。

この時点で、キー 1 の値は 1 である必要がありますが、キー 2 の値は 0 である必要がありますが、どちらも値が 0 です。

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

c# - 値でフィルターするときにのみキーを取得する方法

値が 5 より大きいキーのみを選択したいのですが、どうすればよいですか?

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

c# - ConcurrentDictionary - AddOrUpdate の問題

以下のコードを使用して、キーに応じてディクショナリ オブジェクトの値を更新しようとしています。

//初回追加

//更新を試みる

しかし、UsersessionStatisticオブジェクトuserViewModel2は ConcurrentDictionary で更新されていません (ブラウザのプロパティはまだ と言っています"Netscape")、何が間違っていますか?

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

c# - AddOrUpdate メソッドでのキー オブジェクトの更新

テストクラスがあります。

int を Key として、Test を値として ConcurrentDictionary をセットアップしたいと思います。

このディクショナリの AddorUpdate の Update 部分を記述して、外部変数 (External など) が true の場合、Test のそのインスタンスの Val が 100 ずつ増加し、bool が false の場合は 100 ずつ減少するようにしたいと思います。誰かが私を助けてくれます。ラムダを使用して辞書内の Test インスタンスにアクセスする方法がわかりません。また、ラムダにもかかわらずメソッド呼び出しを行うことはできますか?