5
Kodumda bir kilit var.
Aynı anda iki iş parçacığım var. Bir iş parçacığının bu nesneyi kilitleyip kilitlemediğini nasıl anlarım?Bir Nesne Kilitliyse Nasıl Çıkarım? C#
private readonly object _lockObject = new Object();
// Both methods running
public void Method1()
{
if(certainCriteria)
{
lock(_lockObject)
{
//doWork;
}
}
}
// Both methods running
public void Method2()
{
if(isLocked?(_lockObject))
{
//doWork;
}
}
yöntem?
Şimdiden teşekkürler!
@Jon: Yaow çok hızlı, yaaw ise (bir Siyah ülke aksanı yönetebilirseniz daha iyi okur). Devasa bir uyarı ile önereceğim şey buydu: "Bu," kilit nasıl çalıştığını "bildiğimiz temelde çalışır. – AnthonyWJones
Özellikle kilidin nasıl çalıştığını bilmesine bağlı olduğu için rahatsız değilim - bu değişecek gibi değil. Sadece yanlış yanlış hissettiriyor. Bunun yararlı olduğu bazı * durumlar olduğunu söyleyebilirim, fakat muhtemelen kullanıldığı yerlerden daha azdır! –
Merhaba yine Jon! Bir BufferManager uyguluyorum. Temelde bir yığın tamponlar vardır. Bir iş parçacığı pop() yığını ve boş olduğunda - bir iş parçacığı yığını doldururken tüm iş parçacıklarının bir sonraki pop() üzerinde beklemesini istiyorum. Doldurulduğunda - diğer tüm konular açılır. Yine de C# kilitleme mekanizmalarından emin değilim! – divinci