1. ホーム
  2. .net

[解決済み] MemoryCache.AddとMemoryCache.Setの違いは何ですか?

2022-11-25 12:45:50

質問

私は MSDN ドキュメント を読みましたが、よく理解できませんでした。

の動作は Set は "既存のものを置き換える、または追加する" (アトミックに)です。

というのは正しいでしょうか?

どのように解決するのですか?

Add は何もしません。 false を返す)。 Set は必要に応じて挿入または更新を行います。

Remove + Add のようにすると、そのキーを照会している他のスレッドが何の手がかりも得られないような隙間ができてしまいます ( Set はそうしません。スワップは通常アトミックです)。 Set は同じ 最終結果 として Remove + Add のように、他の呼び出し元に影響を与える可能性があるため、メカニズムの違いは重要です。

の例では を追加します。 :

戻り値

型を指定します。System.Boolean 挿入が成功した場合は true、キャッシュ内にキーと同じキーを持つエントリが既に存在する場合は false。