图中的watch_thread可以开多个,不过效果暂时没有详测,对于不是特频繁(可能是100个线程同时更新?)的文件变化,单个watch_thread应该就够了
关键sys_api:
windows:
1.createfile(dirPath, flag_overlap),flag_overlap表示异步操作
2.createiocompletionstatus(dirHandle, port, key),生成一个共用的port,关联多个key(不同dirHandle需要不同的key),监控io操作的完成
3.getqueuedcompletionstatus(port, &key),通过监听port,来监听io操作完成后返回的结果
4.readdirectorychangesw(dirHandle, buf), 异步请求io操作(读取目录变化),完成后getqueuedcompletionstatus接口就会结果
有些注意的细节: