我在线程中使用了ReadDirectoryChangesW的同步风格。一切都很好。
但是,除了从主线程调用TerminateThread之外,我无法终止线程,因为如果监视目录中没有活动,ReadDirectoryChangesW将永远等待。
使用TerminateThread的解决方案是可行的,但这有点脏。
另一种解决方案是在受监视的目录中创建一个虚拟文件,该文件将解除对ReadDirectoryChangesW的阻塞,但这只是另一次攻击。
那么,是否有一种正确地解除/中止ReadDirectoryChangesW的方法?
发布于 2013-11-20 12:47:49
您可以切换到与完成例程一起使用它,并在调用ReadDirectoryChangesW()之后立即调用一个等待函数,该函数使您处于可报警的等待状态,并等待用于中止等待的事件.
发布于 2017-07-20 15:56:04
如果使用FILE_SYNCHRONOUS_IO_ALERT打开句柄,则可以使用无文档的NtAlertThread发送停止等待的信号。
https://stackoverflow.com/questions/20096225
复制相似问题