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