मुझे एक ही समस्या थी, मैंने एक वर्ग <कोड> TryLock बनाने का अंत किया जो IDISposable लागू करता है और फिर लॉक के दायरे को नियंत्रित करने के लिए
कथन का उपयोग करता है:
public class TryLock : IDisposable
{
private object locked;
public bool HasLock { get; private set; }
public TryLock(object obj)
{
if (Monitor.TryEnter(obj))
{
HasLock = true;
locked = obj;
}
}
public void Dispose()
{
if (HasLock)
{
Monitor.Exit(locked);
locked = null;
HasLock = false;
}
}
}
और फिर लॉक करने के लिए निम्न वाक्यविन्यास का उपयोग करें:
var obj = new object();
using (var tryLock = new TryLock(obj))
{
if (tryLock.HasLock)
{
Console.WriteLine("Lock acquired..");
}
}