比如我在多线程任务区中使用了Monitor.Enter(monitorObject);
for (int i = 0; i < _threads.Length; i++)
{ _threads[i].Abort(); }
我在中止多线程时怎么去释放Monitor,方便我下次启动任务。因为在Monitor没有释放之前,我就结束了线程。下次启动任务时将会一直在Monitor.Enter(monitorObject)这里卡着。
而我并不希望使用Monitor.TryEnter。请问各位高手怎么在结束线程时释放Monitor。
用monitor.exit 释放. 其实你应该直接用lock(monitorObject)
你可以参考这个文章
http://kb.cnblogs.com/page/42530/
自己解决了,,,我当然知道monitor.exit释放。。。
Monitor.Enter(monitorObject);
try
{
工作区
}
finally
{
Monitor.Exit(monitorObject);
}
终止线程都会抛出正在终止线程的异常,所以我们在finally里释放就可以了