作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
Monitor.Enter
和 Monitor.Exit
设计为从同一线程调用。但是,如果我需要在与获得的线程不同的线程中释放锁怎么办?
例如:有共享资源和使用该资源的异步操作。该操作以 BeginOperation
开始,并获取共享资源上的锁。还有释放锁的 EndOperation
方法。 EndOperation
通常在另一个线程中从回调中调用,因此我无法在 EndOperation
方法中调用 Monitor.Exit
。在这种情况下最好的方法是什么?使用 AutoResetEvent
而不是 Monitor
仔细检查锁定是否是一个好的解决方案?
最佳答案
您正在寻找的原语称为 semaphore可以安全地在一个线程上进入并从另一个线程退出。
关于c# - Monitor.Enter 和 Monitor.Exit 在不同的线程中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001760/
我是一名优秀的程序员,十分优秀!