【发布时间】:2016-01-13 09:23:20
【问题描述】:
我想以 SemaphoreSlim 方式分配对象列表,例如假设每个对象可以同时被两个线程使用。我的计划是为此列表中的每个对象创建一个 SemaphoreSlim 类,但是我的问题是我应该如何检查是否可以立即使用 SemaphoreSlim?
我不想调用 Wait(),因为如果一个对象不可用,我可以转到列表中的下一个对象。我也不想检查 CurrentCount 属性,因为如果多个线程同时检查 CurrentCount 并且决定在 CurrentCount 大于零时调用 Wait(),我认为这不是线程安全的。
那么对于这种情况,理想的解决方案是什么?
顺便说一句 - 我可以使用其他解决方案 - 不仅仅是 SemaphoreSlim。
【问题讨论】:
标签: c# multithreading semaphore