मुझे lock(myLock){ /* do stuff */}
के सी # में शॉर्टकट पसंद है। क्या पढ़ने/लिखने के ताले के बराबर है? (विशेष रूप से ReaderWriterLockSlim।) अभी, मैं निम्नलिखित कस्टम विधि का उपयोग करता हूं, जो मुझे लगता है कि काम करता है, लेकिन यह बहुत परेशान है क्योंकि मुझे एक अज्ञात फ़ंक्शन के रूप में मेरी कार्रवाई में गुजरना है, और यदि संभव हो तो मैं मानक लॉकिंग तंत्र का उपयोग करना पसंद करूंगा ।क्या रीडरवाइटर लॉकस्लिम के लिए लॉक {} कथन का समतुल्य है?
void bool DoWithWriteLock(ReaderWriterLockSlim RWLock, int TimeOut, Action Fn)
{
bool holdingLock = false;
try
{
if (RWLock.TryEnterWriteLock(TimeOut))
{
holdingLock = true;
Fn();
}
}
finally
{
if (holdingLock)
{
RWLock.ExitWriteLock();
}
}
return holdingLock;
}
* कोशिश * बयान गलत स्थान पर है। * कोशिश करें * TryEnterWriteLock() के बाद। एक चर के लिए और आवश्यकता नहीं है, एक शॉर्टकट व्यर्थ हो जाता है। ' –