gpt4 book ai didi

c++ - 如何从其他线程停止 ReadDirectoryChangesW

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:15 27 4
gpt4 key购买 nike

我使用下一个代码来了解某个文件夹中的文件何时更改:

HANDLE hDir = ::CreateFile(path, FILE_LIST_DIRECTORY, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_OVERLAPPED, NULL);

FILE_NOTIFY_INFORMATION returnData[1024];
DWORD returnDataSize = 0;

while(ReadDirectoryChangesW(hDir, returnData, sizeof(returnData), TRUE, FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_DIR_NAME|FILE_NOTIFY_CHANGE_LAST_WRITE, &returnDataSize, NULL, NULL))
{
...
}

ReadDirectoryChangesW 会阻塞线程,直到发生文件更改。有什么方法可以停止/强制从此函数返回吗?

最佳答案

根据你的描述,这听起来像 CancelIoEx应该做的伎俩。显然,您为此需要另一个线程,因为您现在正在同步调用它。这会阻塞调用线程,因此您不能从该线程执行任何操作,甚至不能停止。

关于c++ - 如何从其他线程停止 ReadDirectoryChangesW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com