C# でのマルチスレッドは初めてです。しかし、C# の本やチュートリアルのさまざまな章を読むことから。マルチスレッド アプリケーションで使用されるクラスを開発する最善の方法は、不変のクラスを作成することです。
しかし、読み取り/書き込みプロパティを公開するクラスをどのように扱うかについてはよくわかりません。私が読んだいくつかの記事では、著者が読み取り/書き込みプロパティの周りにロックを配置しました。
public class Test
{
private string property1;
public string ClassProperty
{
get
{
lock
{
return Property1;
}
}
set
{
lock
{
Property1 = value;
}
}
}
}
クラス内で宣言および使用される共有変数は、マルチスレッド アプリケーションでロックする必要があることを私は知っています。しかし、私が読んだいくつかの記事では、公開されているプロパティが参照型の場合、上記のコードは機能しないことが示唆されています。他の人は、公開されたプロパティを持つクラスをスレッドセーフにすることはできないと示唆していますか? 誰かがこのトピックについて明確な答えを持っていますか?
ありがとう