私はこのようなことをしようとしています:
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()
これを正しくする方法は?:(