我看到CreateFile函数需要一个FILE_FLAG_OVERLAPPED参数来使文件io无阻塞。但是,如何使CreateFile调用本身为非阻塞?如何在不阻塞窗口的情况下打开文件?
0
A
回答
2
不幸的是,CreateFile
是同步的。如果你需要它是非阻塞的,你可能试图在UI线程中做I/O操作。避免这种情况。
您没有提及编程语言,所以我会认为它是C++。您可以使用the standard library's threading facilities将I/O密集型工作卸载到工作线程中。例如,您可以将其包装在packaged_task或async中。
+0
我知道我可以使用工作线程,它目前是我正在实施的解决方案。我想知道是否可以纯粹使用异步和非阻塞IO。我正在尝试优化传输大量文件的作业。该语言是python,但我很自在地使用python的低级窗口API调用。 – Maxaon3000
+0
没有可用的'CreateFile()'的异步/非阻塞版本。像doug说的那样,'CreateFile()'本身只是同步的。 –
相关问题
- 1. 当窗口打开?如何知道窗口在没有监听窗口事件的情况下打开?
- 2. 如何在不打开新窗口的情况下打开网页?
- 3. 如何在没有在JavaScript中打开新窗口的情况下检测阻止的弹出窗口?
- 4. 如何在不打开多个outlook窗口的情况下在Outlook中打开.msg文件
- 5. 在不打开父窗口的情况下调用tkFileDialog
- 6. 如何在不阻塞的情况下运行脚本?
- 7. 如何在不阻塞的情况下调用NetworkStream.Read()?
- 8. 如何在不阻塞的情况下轮询Web请求?
- 9. WPF在不关闭原始窗口的情况下打开一个新窗口
- 10. 您可以在不打开窗口的情况下创建OpenGL上下文吗?
- 11. 如何在不使用MATLAB的情况下打开.mat文件?
- 12. 如何在不离开当前窗口的情况下在新窗口/标签中打开URL?
- 13. 如何在不打开窗口的情况下添加Vim搜索记录?
- 14. 如何在不打开Java的情况下打印Word文档?
- 15. 在SDL窗口打开的情况下获取终端输入?
- 16. 蟒蛇:打开文件的情况下
- 17. 如何在不打开文件浏览器窗口(C#/ WebBrowser控件)的情况下触发上传?
- 18. 默认情况下在plone中阻塞上下文portlet
- 19. 如何在启用标签的情况下在新窗口中打开链接
- 20. 如何在不拉伸情节的情况下展开matplolib窗口?
- 21. 如何在不打开浏览器窗口的情况下上传Google Drive v3中的文件?
- 22. 如何防止在没有确认的情况下打开窗口
- 23. 在不打开弹出窗口的情况下在Facebook上分享内容
- 24. 如何在不阻塞shell的情况下在cygwin中运行应用程序
- 25. 如何在不阻塞的情况下在python中使用管道?
- 26. 如何在不阻塞线程的情况下在HttpWebRequest.BeginGetResponse上指定超时值
- 27. 如何仅在单一情况下打开镀铬扩展弹出窗口?
- 28. 打开的上下文窗口阻止接收鼠标事件,如何避免?
- 29. 在不打开实际文件的情况下使用JFileChooser
- 30. 在不知名的情况下打开文件
StorageFolder :: CreateFileAsync()是winapi ++。没有什么非常神秘的,它只是在一个线程池线程上运行。当然你也可以这样做。 –
'StorageFolder'仅适用于Windows应用商店应用,不适用于标准Win32应用。 –
@Remy这就是为什么Hans建议使用线程池。 –