Monitor.Enter并且Monitor.Exit被设计为从同一个线程调用。但是,如果我需要在与获取的线程不同的线程中释放锁怎么办?
例如:有共享资源和使用该资源的异步操作。操作从共享资源开始BeginOperation并获取锁。还有EndOperation释放锁的方法。EndOperation通常在回调的另一个线程中调用,因此我无法调用Monitor.Exit该EndOperation方法。在这种情况下,最好的方法是什么?仔细检查锁定AutoResetEvent而不是Monitor一个好的解决方案吗?