【问题标题】:Locking in one thread, releasing in another锁定一个线程,释放另一个线程
【发布时间】:2012-02-07 22:47:05
【问题描述】:

我有一个游戏服务器,无法接受用户的请求。用户可以请求放置碎片。然后 place 方法会产生一些异步 httpwebrequests(带有超时)来确定放置是否正确。我想要一个在服务器接收到放置请求时将被锁定的锁,并将通过 Web 回调解锁。我会使用 ReaderWriterLock,但这只有在我留在同一个线程中时才有效,并且 Web 请求回调发生在不同的线程上。我应该使用另一把锁吗?

【问题讨论】:

    标签: c# multithreading thread-safety


    【解决方案1】:

    您可以使用a semaphore。锁定线程获得许可。异步线程释放许可。信号量很漂亮,因为它们没有绑定到单个线程。

    【讨论】:

      【解决方案2】:

      您可以使用Semaphore。从手册中引用;

      Semaphore 类在调用 WaitOne 或 Release 时不强制执行线程标识。

      换句话说,从两个不同的线程获取/释放应该没有问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-02
        • 1970-01-01
        • 2023-03-21
        • 2016-01-23
        • 2023-03-24
        • 2016-03-21
        相关资源
        最近更新 更多