我在线程中使用ReadDirectoryChangesW()来监视文件更改,并且我将CreateFile()返回的句柄传递给ReadDirectoryChangesW()。我在WaitForSingleObject()中使用相同的句柄来等待目录中的文件更改。我可以在此HANDLE上调用SetEvent()来手动退出线程吗?
答案 0 :(得分:4)
文件句柄可用作对WaitForSingleObject
的调用中的同步对象。这并不意味着您可以使用任何特定于同步对象的API调用,例如SetEvent
。 的文档清楚地说明了主题:
hEvent [in]
事件对象的句柄。 SetEvent或CreateEvent函数返回此句柄。
终止等待事件的线程的规范解决方案是创建一个额外的事件对象,并在线程内使用OpenEvent。当线程需要终止时,您在该事件对象上调用SetEvent
。 WaitForMultipleObjects
的返回值报告了哪个同步对象已发出信号。