問題タブ [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.
c# - ConcurrentDictionary からリスト マッピングを安全に削除する
単純な型をリストにマップする ConcurrentDictionary があります。
AddOrUpdate()を使用して、最初の値が追加されたときのリストの初期化と、リストへの後続の値の追加の両方に対応できます。
ただし、削除については同じではありません。私が次のようなことをした場合:
...対応するリストに値がなくなった場合にキーを完全に削除することを意図している場合(概念的には参照カウントに似ています)、誰かが直後にリストに何かを追加した可能性があるため、競合状態のリスクがあります空かどうかを確認しました。
この単純な例ではリストを使用していますが、通常、そのようなシナリオでは ConcurrentBag または ConcurrentDictionary を使用しており、リスクは非常に似ています。
対応するコレクションが空の場合、ロックに頼らずにキーを安全に削除する方法はありますか?
c# - 同じキーを複数回追加する ConcurrentDictionary
ConcurrentDictionary
このデータキーが以前に追加されたかどうかを確認するために使用したいのですが、以前に追加したキーをまだ追加できるようです。
コード:
テストコード:
結果:
c# - ConcurrentDictionary.TryGetValue で OUT 値を操作するには?
ConcurrentDictionary がどのように機能するかを理解するのを手伝ってください。私はこれを持っています:
クライアントでいくつかの値を変更し、変更を ConcurrentDictionary に保存する必要があります。そうですか?
または私はそうすることができます、そしてそれで十分でしょうか?
c# - ConcurrentDictionary の仕組みを理解しようとする
値がまだ存在しない場合は、値を 0 に初期化したいと思います。それ以外の場合は、既存の値をインクリメントする必要があります。
この時点で、ディクショナリには 1 と 2 のキーがあり、それぞれ値は 0 です。
この時点で、キー 1 の値は 1 である必要がありますが、キー 2 の値は 0 である必要がありますが、どちらも値が 0 です。
c# - 値でフィルターするときにのみキーを取得する方法
値が 5 より大きいキーのみを選択したいのですが、どうすればよいですか?
c# - ConcurrentDictionary - AddOrUpdate の問題
以下のコードを使用して、キーに応じてディクショナリ オブジェクトの値を更新しようとしています。
//初回追加
//更新を試みる
しかし、UsersessionStatistic
オブジェクトuserViewModel2
は ConcurrentDictionary で更新されていません (ブラウザのプロパティはまだ と言っています"Netscape"
)、何が間違っていますか?
c# - AddOrUpdate メソッドでのキー オブジェクトの更新
テストクラスがあります。
int を Key として、Test を値として ConcurrentDictionary をセットアップしたいと思います。
このディクショナリの AddorUpdate の Update 部分を記述して、外部変数 (External など) が true の場合、Test のそのインスタンスの Val が 100 ずつ増加し、bool が false の場合は 100 ずつ減少するようにしたいと思います。誰かが私を助けてくれます。ラムダを使用して辞書内の Test インスタンスにアクセスする方法がわかりません。また、ラムダにもかかわらずメソッド呼び出しを行うことはできますか?