我正在尝试做这样的事情:
EventWaitHandle handler = new EventWaitHandle(false, EventResetMode.AutoReset)
//This code will run in background thread
private void AsyncWait() {
while (true) {
handler.WaitOne();
//LongRunningOperation()
}
}
在代码的其他地方,会有调用的方法:
handler.Set()
所以 LongRunningOperation() 被执行..
问题是,handler.Set()
可以在AsyncWait()
线程运行时再次调用LongRunningOperation()
这使得当仍在执行LongRunningOperation()
时被调用时将永远不会被调用handler.Set()
AsyncWait()
LongRunningOperation()
如何做到这一点?:(