Bir yöntemin iki kez aynı anda yürütülmesini önlemenin tek yolunun lock
ifadesi kullanılarak mı olduğunu düzeltir miyim? Tabiiyönteminin aynı anda farklı iş parçacıklarından yürütülmesini engellemesi
private object lockMethod = new object();
public void Method() {
lock (lockMethod) {
// work
}
}
public void FromThread1() {
Method();
}
public void FromThread2() {
Method();
}
Ben de hemen hemen aynı olacağını MethodImpl(MethodImplOptions.Synchronized)
kullanabilirsiniz.
Başka teknikler var mı?
_data_ 'ı kilitlemek yerine _method_' ı kilitlemeye çalıştığınız için endişeleniyorum - ne tür bir problem çözmeye çalışıyorsunuz? – sarnold
Herhangi bir "statik" yöntem göstermediğinizden, aynı anda aynı örnek için iki kez bir yöntemi yürütmeyi engellemeye mi çalışıyorsunuz? Veya aynı anda tek bir örnek için herhangi iki yöntem? – HABO
yöntemi o kadar küçük ki benim durumumda yöntemi kilitlemek = verileri kilitlemek – javapowered