gpt4 book ai didi

c# - Monitor.Enter 和 Monitor.Exit 在不同的线程中

转载 作者:太空狗 更新时间:2023-10-29 17:33:23 28 4
gpt4 key购买 nike

Monitor.EnterMonitor.Exit 设计为从同一线程调用。但是,如果我需要在与获得的线程不同的线程中释放锁怎么办?

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

最佳答案

您正在寻找的原语称为 semaphore可以安全地在一个线程上进入并从另一个线程退出。

关于c# - Monitor.Enter 和 Monitor.Exit 在不同的线程中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001760/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com