私のアプリケーションは、関連する 2 つのデータ ビットをアプリケーション状態に保存します。これら 2 つの値を読み取るたびに、(値によっては) 両方を更新する必要がある場合があります。
そのため、別のスレッドが読み取り中に更新されないようにするために、アプリケーションの状態をロックしています。
しかし、 HttpApplicationState.Lock メソッドのドキュメントでは、それが何をするのか正確にはわかりません。
例えば:
どのようにロックしますか?他のスレッドがデータを書き込むのをブロックしますか?
読み取りアクセスもブロックしますか? そうでない場合、別のスレッドが最初の値を読み取った後、2 番目の値を読み取る前に 2 つの値が更新される可能性があるため、この演習は無意味です。
複数のスレッドが同時にデータを書き込むことを防止するだけでなく、別のスレッドが書き込み中にスレッドが読み取らないようにすることも役立ちます。そうしないと、最初のスレッドが、不要なときにデータを更新する必要があると判断する可能性があります。リフレッシュの回数を制限したい。