Ich Fehlerbehebung alten Quellcode und stieß auf eine Anweisung wie folgt:C# Monitor.Exit in Try/Catch
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);
}
}
}
Der Code wird mit einem Gibt es einen sicheren Weg System.Threading.SynchronizationLockException: Object synchronization method was called from an unsynchronized block of code.
Absturz zu Rufen Sie Monitor.Exit()
auf der fehlerhaften Bedingung und wenn die normale Ausführung beendet ist?
'catch' Block in diesem Fall überschreibt die Ausnahmedetails, die hier gemeint sein können. – VMAtm