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