111

MSDNのドキュメントを読みましたが、よくわかりませんでした。

の振る舞いSetは「既存のものを置き換える、または追加する」(原子的に)だと思います。

あれは正しいですか?

4

1 に答える 1

189

Addfalseそのキーの値がすでに存在する場合は、何もしません(戻ります)。Set必要に応じて、挿入または更新を行います。

Remove+Addそのキーをクエリする別のスレッドが手がかりを取得しない場合、途中にギャップが残ります(取得Setしません。スワップは通常アトミックです)。そのため、+Setと同じ最終結果が得られますが、他の呼び出し元に影響を与える可能性があるため、メカニズムの違いは重要です。RemoveAdd

追加の例:

戻り値

タイプ:System.Boolean挿入が成功した場合はtrue、キーと同じキーを持つエントリがキャッシュにすでに存在する場合はfalse。

于 2012-01-15T08:46:44.640 に答える