System.Runtime.Caching.MemoryCache
で作業するときにロックを実装する必要がありますか? Contains(key);
を呼び出すか、すでにスレッドセーフですか?クラスのドキュメントに関するMSDNライブラリの記事でSystem.Runtime.Caching.MemoryCache - ロックが必要です
8
A
答えて
9
「スレッド・セーフティ」セクションこの:
インスタンスメンバーの場合は、スレッドセーフであるとは限りません。
これは.NETクラスでは通常のことですが、ドキュメントは定型文であり、いくつかの選択されたケースでは情報がありません。これは、ドキュメントが更新されるまで、MemoryCacheの場合も同様でした。 DavideによってリンクされたConnectのフィードバック記事は、これをクリアするのに役立ちます。
System.Runtime.Caching.MemoryCacheはスレッドセーフです。複数の同時スレッド スレッドは、MemoryCacheインスタンスを読み書きできます。内部的に スレッドセーフティが自動的に処理され、キャッシュが一貫した方法で更新されます( )。
これは、キャッシュ に格納されたデータ自体がスレッドセーフでない可能性があることを示しています。例えば、Listがキャッシュを に置いて、2つの別々のスレッドが両方ともキャッシュされた Listへの参照を取得すると、 が両方ともリストを同時に更新しようとすると、2つのスレッドが踏み合うことになります。
6
関連する問題
- 1. System.Runtime.Caching.MemoryCacheリストキャッシュインスタンス
- 2. ここでロックが必要なのはなぜですか?
- 3. select-insertプロシージャでロック・ヒントが必要ですか?
- 4. セマフォでロックを使用する必要がある理由
- 5. C#スレッド - ロックまたはモニタが必要ですか?
- 6. マルチスレッドのPythonスクレイピングにはロックが必要ですか?
- 7. EventWaitHandleを持っている場合はロックが必要です
- 8. SQL Server - 1列の更新、ロックが必要ですか?
- 9. Redisで分散ロックが必要な理由
- 10. dlopenの前にロックする必要がありますか?
- 11. System.Runtime.Caching.MemoryCacheの汎用実装
- 12. System.Runtime.Caching.MemoryCacheの異常な動作?
- 13. いつC#ベースクラスで辞書をロックする必要があるのですか?
- 14. BackgroundWorkerから派生したクラス内でロック文が必要ですか?
- 15. MemoryCacheスレッドの安全性、ロックは必要ですか?
- 16. このロック管理コードスニペットは不必要に複雑ですか?
- 17. マルチスレッドでローカル変数をロックする必要がありますか?
- 18. なぜC#でロックしてオブジェクト化する必要がありますか?
- 19. トランザクション内でActiveRecordロックを実行する必要がありますか?
- 20. 排他ロック(行レベル) - MySqlに例が必要
- 21. 静的リストまたは変数にロック機構が必要ですか?
- 22. IISのファイルへの書き込みにロックが必要ですか?
- 23. 私のコードが必要なときにmysql行をロックしてロックを実現する
- 24. クラウドWebロールプロジェクトでSystem.Runtime.Caching.MemoryCacheを使用できますか?
- 25. フォームに必要な入力をロックする
- 26. C#のロックとミューテックスを一緒に使用する必要があります
- 27. MultiThreadingの例 - 私は辞書をロックする必要があります
- 28. ロックはグローバルとして宣言する必要がありますか?
- 29. エラー:Lvalueが必要です。説明が必要です
- 30. ASP.NETコアでシングルトンをロックする必要はありますか?ここ
MemoryCacheクラススレッドセーフです。新しいmsdnのマニュアルを参照してください。 –