我看到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建議使用線程池。 –