私は現在、マルチスレッドプロジェクトに取り組んでいます。主に学習用です。このプロジェクトでの私の役割は、サーバー アプリケーションを作成することです。
しかし、この変数のロック全体が少し混乱するところまで来ました。なぜなら、それがどのように機能し、いつ/どこで使用する必要があるのか 正確にはわからないからです。
class ClientHandler
を含むがあるとしましょうList<Client> clientList
。を返す
ClientHandler
プロパティがあります:ClientList
clientList
private List<Client> clientList;
public List<Client> ClientList
{
get { lock (lockObject) return clientList; }
set { lock (lockObject) clientList = value; }
}
NetworkHandler
Thread
this で動作する秒を実行しますList<>
。
このネットワークThread
では、取得したものは使用中にList<>
別のものにロックさobject
れます。
私の質問は、このロックがどのように機能するかです。これがネットワーク内にある
場合( とは異なる場合)、スレッドセーフですか? したがって、一般に、変数が whatである場合、他のすべての人がアクセスしようとしているためにロックされているというのは本当ですか? 別の で処理されている間は を変更できないこと
を確認したいだけです。lock
List<>
Thread
object
ClientHandler
lock
object
List<>
Thread