以下のコードを見てください。
2 つの Q があります。
このタイプのオブジェクトをロックに使用する利点は何ですか?
2 番目の q、コードがまだ//--------この領域にある間にバッファを操作できますか?
private list<byte> buffer;
.
.
.
lock(buffer)
{
//--------
}
このタイプのオブジェクトを使用してロックすることの利点は何ですか?
特定のタイプのロックオブジェクトに利点があるのはなぜですか?マニュアルに記載されているように:
ベストプラクティスは、ロックオンするプライベートオブジェクト、またはすべてのインスタンスに共通のデータを保護するプライベート静的オブジェクト変数を定義することです。
コードがまだ//--------この領域にある間にバッファを操作できますか?
はい、同じスレッドからlock()
ステートメントが発行されました。他のスレッドはそこで待機する必要があります。
ロックは、マルチスレッド環境でオブジェクトへの複数アクセスを防ぐために使用されます。実際には、ロックは .NET フレームワークの Monitor クラスの実装です。