Tag: waitforsingleobject

是否有可能杀死WaitForSingleObject(句柄,INFINITE)?

我在关闭使用带有INFINITE组合的WaitForSingleObject()的应用程序时遇到问题。 全貌是这样的。 我正在执行以下操作以允许我的应用程序处理设备唤醒事件: 注册活动: CeRunAppAtEvent(“\\\\.\\Notifications\\NamedEvents\\WakeupEvent”, NOTIFICATION_EVENT_WAKEUP); 启动一个新线程等待: Thread waitForWakeThread = new Thread(new ThreadStart(WaitForWakeup)); waitForWakeThread.Start(); 然后在目标方法中执行以下操作: private void WaitForWakeup() { IntPtr handle = CreateEvent(IntPtr.Zero, 0, 0, “WakeupEvent”); while (true) { WaitForSingleObject(handle, INFINITE); MessageBox.Show(“Wakey wakey”); } } 这一切都正常,直到我尝试关闭应用程序时,可预见的是,WaitForSingleObject继续等待并且不允许应用程序正常关闭。 我们只允许我们的应用程序的一个实例一次运行,我们在启动时检查这个。 它似乎继续运行,直到设备软复位。 有没有办法杀死WaitForSingleObject正在等待的句柄,强制它返回? 非常感谢。