0
我疑難解答老的源代碼,並遇到了如下語句:在try/catch語句C#Monitor.Exit
if (Monitor.TryEnter(lockObj))
{
try
{
//does something
if (failing_condition)
{
Monitor.Exit(lockObj);
throw new Exception("Oops!");
}
catch (Exception ex)
{
throw ex;
}
finally
{
Monitor.Exit(lockObj);
}
}
}
的代碼與System.Threading.SynchronizationLockException: Object synchronization method was called from an unsynchronized block of code.
崩潰是否有一個安全的方式來撥打Monitor.Exit()
在失敗的條件和正常執行完成?
在這種情況下,「catch」塊將覆蓋可能在此處指定的異常詳細信息。 – VMAtm