ある作業の完了後にコールバックと呼ばれる次のメソッドがあるとします。メソッドスコープのローカル変数に対して操作を保護する必要がありますか
public class MyClass
{
private static object _synblock = new object();
public void MyCallBackMethod()
{
Dictionary<int, int> myDict = new Dictionary<int, int>();
lock(_synblock)
{
myDict.Add(1, 1);
}
}
}
このメソッドは、複数のスレッドで呼び出すことができます。このシナリオでは、ローカル変数myDictに対して、このメソッドのスコープで定義されたすべての操作を同期させる必要がありますか?それとも完全に不要なのでしょうか?
すべての呼び出しには、そのオブジェクトの独自のインスタンスがあり、同期の必要はありません。 –