メソッドが同時に 2 回実行されるのを防ぐ唯一の方法は、lock
ステートメントを使用することです。
private object lockMethod = new object();
public void Method() {
lock (lockMethod) {
// work
}
}
public void FromThread1() {
Method();
}
public void FromThread2() {
Method();
}
もちろんMethodImpl(MethodImplOptions.Synchronized)
ほぼ同じものも使えます。
他のテクニックはありますか?