我看到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. 在WPF(.net 4.0)中,如何在不阻塞主窗口的情况下让子窗口阻塞代码?
- 2. 当窗口打开?如何知道窗口在没有监听窗口事件的情况下打开?
- 3. 如何在不打开新窗口的情况下打开网页?
- 4. 默认情况下在弹出窗口中打开HTML文件
- 5. 如何在我的情况下打开新的弹出窗口?
- 6. 在不阻挡正常控件的情况下阻塞线程
- 7. 如何在没有在JavaScript中打开新窗口的情况下检测阻止的弹出窗口?
- 8. 如何在不打开多个outlook窗口的情况下在Outlook中打开.msg文件
- 9. 在不打开父窗口的情况下调用tkFileDialog
- 10. 在不打开浏览器窗口的情况下调用URL
- 11. 如何在不阻塞的情况下轮询Web请求?
- 12. 如何在不阻塞的情况下调用NetworkStream.Read()?
- 13. 如何在不阻塞的情况下运行脚本?
- 14. 如何在不阻塞的情况下同步线程?
- 15. 在不打开%homepath%的情况下打开VIM中的文件
- 16. WPF在不关闭原始窗口的情况下打开一个新窗口
- 17. 您可以在不打开窗口的情况下创建OpenGL上下文吗?
- 18. 如何在不使用MATLAB的情况下打开.mat文件?
- 19. 如何在不打开它的情况下解析xlsm文件
- 20. 如何在不锁定的情况下打开Excel文件?
- 21. 如何在不离开当前窗口的情况下在新窗口/标签中打开URL?
- 22. 如何在无需下载的情况下在新窗口中打开pdf
- 23. 如何在不打开窗口的情况下添加Vim搜索记录?
- 24. 如何在不打开Java的情况下打印Word文档?
- 25. CKEDITOR - 默认情况下打开粘贴为纯文本窗口
- 26. 在SDL窗口打开的情况下获取终端输入?
- 27. 如何在不关闭窗口的情况下关闭文档?
- 28. 蟒蛇:打开文件的情况下
- 29. 如何在不打开文件浏览器窗口(C#/ WebBrowser控件)的情况下触发上传?
- 30. 默认情况下在plone中阻塞上下文portlet
StorageFolder :: CreateFileAsync()是winapi ++。没有什么非常神秘的,它只是在一个线程池线程上运行。当然你也可以这样做。 –
'StorageFolder'仅适用于Windows应用商店应用,不适用于标准Win32应用。 –
@Remy这就是为什么Hans建议使用线程池。 –