异常“企图释放并非呼叫方所拥有的多用户终端运行程序”的处理
在使用锁机制时有可能会出现“企图释放并非呼叫方所拥有的多用户终端运行程序”的异常,改异常的出现是因为一个非拥有锁的线程企图释放其他线程占有的锁。
在使用ReaderWriterLock时直接调用释放锁的方法:_lock.ReleaseReaderLock();就有可能出现此异常。
解决问题的方法很简单就是在每次释放锁之前都先判断当前线程是否拥有锁
if(_lock.IsReaderLockHeld)_lock.ReleaseReaderLock();