私はそれが次のコードのように、リストの操作を実行するためのスレッドセーフになりC#のロックスコープ:返されたオブジェクトはまだ「ロックされていますか?
// ...
private List<double> someList = new List<double>();
// ...
public List<double> SomeList
{
get { lock (this) { return someList; } }
}
// ...
を含むオブジェクトAを有すると仮定します。いくつかの操作が異なるスレッドによって同時に実行できることが分かっています。ロックが解除され
つまりA.SomeList.Add(2.0);
または
A.SomeList.RemoveAt(0);
、?
されます'this'のようにクラスの外部に公開されているオブジェクトを決してロックしてはいけません。 – svick
十分な公正。私は外に露出していないオブジェクトをロックすると仮定します。 –
なぜでしょうか? – surfen