データベースから取得した情報をキャッシュしようとしています。私は静的List <>メンバーを使って情報を保存することに決めました。 lock文を使ってアクセスを保護する必要があるマルチスレッドアプリケーションでは、リスト<の経験から知っています。私は自分のAsp.Netコード内のコードをまったく同じ方法で扱いますか?ロックステートメントは引き続き機能しますか?ASP.Netの静的オブジェクト
1
A
答えて
2
ロックが効きます。ワーカープロセスが複数ある場合は、複数のバージョンのリストが作成されることに注意してください。それぞれは独自のロックによって保護されます。
ここで本当に危険なのは、ロックを解除できないと、Webアプリケーション全体がハングアップする可能性があるということです。 ASP.NETページの実行中にユーザーが切断されることがあります。予想外の時に投げられる例外に注意してください。
5
リストメソッドのロックステートメントは間違いなく機能しますが、ASP.NETアプリケーションにキャッシュ機能が必要な場合は、この機能に合わせてCacheクラスを使用することをお勧めします。
+0
ありがとう!私はこれを調べます。 +1 –
0
リストを変更するかどうかによって異なります。この件に関する良い議論があります:Do i need a lock on a list? C#
関連する問題
- 1. ASP.NET MVC - 静的オブジェクト
- 2. ローカル静的オブジェクトの静的な破棄
- 3. 静的オブジェクトのマジックメソッド
- 4. asp.netのグリッドビューの静的ヘッダー
- 5. C++ - ローカル以外の静的オブジェクトとローカル静的オブジェクト
- 6. asp.netの静的変数
- 7. asp.netコアの静的ファイル
- 8. コントローラのASP.NETと静的メソッド
- 9. Asp.Net Mvcコントローラの静的コンストラクタ
- 10. ASP.NET Webサービスの静的フィールド
- 11. ASP.net - 静的サイトの検索
- 12. asp.netの静的関数
- 13. ASP.NETの静的変数
- 14. ASP.NETの静的オブジェクトはメモリの無駄ですか?
- 15. asp.NETのウィザードMVC3で静的オブジェクトを使用する
- 16. この静的オブジェクトのポインタ
- 17. Pythonのオブジェクトの静的リスト
- 18. ASP.NETテーマと静的コンテンツ
- 19. IIS7 ASP.NET MVC静的JavaScriptファイルキャッシュ?
- 20. 静的またはキャッシュとしてasp.netオブジェクトを共有
- 21. 静的オブジェクトの検出
- 22. Moq静的クラスのオブジェクト
- 23. Web API 2の静的オブジェクト
- 24. クラス内の静的オブジェクトの目的
- 25. 共有オブジェクト内の静的ライブラリの静的関数
- 26. 静的クラスC#ASP.NET Webフォームで静的メソッドを呼び出す
- 27. ASP.Netの通常クラス内の静的クラス
- 28. スタティッククラスのスレッドセーフティのASP.NET非静的クラス
- 29. ASP.NET内の静的内部クラスのスコープ
- 30. ASP.Net MVCの静的ファイルの恒久リダイレクトレガシールート
これは可能ですか?私はlock(){}がロックが解放されることを保証しているという印象を受けました。また、ASP.Netが全く新しいプロセスに対して要求に対して新しいスレッドを作成する頻度を知ることができますか、少なくとも知っていますか? –
ロック(){}を同意すると、ロックの解放が保証されます。アプリケーションプール設定の[最大ワーカープロセス]でIISのプロセス数を構成できます。デフォルトは1です。つまり、プロセスは1つだけです。 – Andomar
ありがとうございました! +1 –