标题已经说明一切。
await Task.Run(() => semaphore.WaitOne());
有什么问题吗?System.Threading.Semaphore
不是线程相关的,因此我认为不会有问题。我知道SemaphoreSlim
类可用,但我需要跨进程同步,而SemaphoreSlim
无法实现。或者我可以/应该创建自己的WaitHandle
自定义类型吗?
信号量(Semaphore)
。 - ServyWaitOne
的进程实际上需要知道信号量何时被触发,为什么不同步等待呢?如果它不需要知道,那为什么还要使用信号量呢? - nobodyawait Task.Run(() => semaphore.WaitOne()) /* Do work */
或者await Task.Run(() => { semaphore.WaitOne(); /* Do work */ })
- Zane KaminskiWaitOne()
无限期等待,如果应用程序在信号量被标记之前尝试退出会发生什么?如果信号量被遗弃会发生什么?您没有处理异常。等等... - Peter Ritchie