理论上是否有可能在方法的返回和将其返回值分配给本地之间时某些东西会中断 .NET 线程(例如 ThreadAbortException)?
例如,下面的代码是否安全,或者是否有可能myMutex.WaitOne()
获取互斥锁并返回,但在分配true
该值之前抛出异常,因此获取的互斥锁不会被释放?true
mutexAcquired
bool mutexAcquired = false;
try
{
mutexAcquired = myMutex.WaitOne(1000);
if (!mutexAcquired)
throw new Exception();
// OK, do some stuff...
}
finally
{
if (mutexAcquired)
myMutex.ReleaseMutex();
}
如果那是安全的,那么下面的代码呢?
if (!myMutex.WaitOne(1000))
throw new Exception();
try
{
// OK, do some stuff...
}
finally
{
myMutex.ReleaseMutex();
}
同样,是否有可能myMutex.WaitOne()
返回 true,但是在进入块if
之前在 ,上抛出 ThreadAbortException (或类似的)?try