Kısayolunu lock(myLock){ /* do stuff */}
'un C#'sindeki gibi seviyorum. Okuma/yazma kilitleri için bir eşdeğer var mı? (Özellikle ReaderWriterLockSlim.) Şu anda, çalıştığımı düşündüğüm şu özel yöntemi kullanıyorum ama biraz sinir bozucu çünkü anonim bir işlev olarak eylemimde geçmek zorundayım ve mümkünse standart kilitleme mekanizmasını kullanmayı tercih ederim. .ReaderWriterLockSlim için kilit {} ifadesinin bir karşılığı var mı?
9
A
cevap
14
anahtar kelimesinin davranışını geçersiz kılabilirsiniz. Yaygın bir teknik, using
anahtar kelimesini kaçırmaktır.
- Yap bir
IDisposable
DoWithWriteLock
yöntemle- Dönüş
IDisposable
uygulayan bir nesne içindekiTryEnterWriteLock
çağrıyı tutun dönmekDoWithWriteLock
. Bu nesneninDispose
yönteminde, aramayıExitWriteLock
'a koyun.
Sonuç:
// Before
DoWithWriteLock(rwLock,
delegate
{
Do1();
Do2()
});
// After
using (DoWithWriteLock(rwLock))
{
Do1();
Do2();
}
İlgili konular
- 1. Go'da bu JS ifadesinin bir karşılığı var mı?
- 2. ReaderWriterLockSLim ile sorun giderme ReaderWriterLockSLim - sorunları
- 3. sqlite3_limit için bir PHP karşılığı var mı?
- 4. MySql için bir Profiler karşılığı var mı?
- 5. Java'da epoll karşılığı var mı?
- 6. Python'un pass ifadesinin Bash karşılığı nedir
- 7. HKEY_Classes_Root \ Record'un bir HKEY_Current_User karşılığı var mı?
- 8. iOS'ta Android'in herhangi bir karşılığı var mı?
- 9. Css "display: none" ifadesinin karşılığı nedir?
- 10. Sweave'de \ Sexpr {} için bir R Markdown karşılığı var mı?
- 11. ES5'in __lookupGetter__ için bir karşılığı var mı?
- 12. Android için iOS 'identifierForVendor'un bir karşılığı var mı?
- 13. C# 'de VB'nin "Dim" ifadesinin karşılığı nedir?
- 14. Python/Django'da PHP'nin hash_hmac karşılığı var mı?
- 15. Multimap veri yapısının javascript karşılığı var mı?
- 16. Twig'de (symfony 2.0) include_partial karşılığı var mı?
- 17. Python'da // operatörü tavan karşılığı var mı?
- 18. Google Play'de abonelikler için promosyon kodunun karşılığı var mı?
- 19. If ifadesinin durumunu, değeri olarak kullanmanın bir yolu var mı?
- 20. PHP'nin ArrayObject öğesinin bir in_array karşılığı var mı?
- 21. Keen.io'nun bir limit anahtar kelimesi veya karşılığı var mı?
- 22. MATLAB'ta Python aralığı işlevinin bir karşılığı var mı?
- 23. Jytck'in Python karşılığı mı?
- 24. Passport.js karşılığı mı?
- 25. PHP'nin http_build_query işlevinin herhangi bir Java karşılığı var mı?
- 26. mailto: telefon görüşmeleri için bağlantı karşılığı mı?
- 27. /sharedtypes karşılığı mı?
- 28. jQuery karşılığı mı?
- 29. ToolStripButton için bir WPF eşdeğeri var mı?
- 30. SQL Server Management Studio'da SELECT ... INTO OUTFILE karşılığı var mı?
* deneyin * ifadesi yanlış yerde olduğunu. * TryEnterWriteLock() öğesinden sonra * koyun. Bir değişkene gerek yok, bir kısayol anlamsız olur. ' –