我想知道如何在System.IO namespace
中實現Directory.CreateDirectory
方法的async/await
版本?如何實現System.IO.Directory.CreateDirectory方法的異步/等待版本?
1
A
回答
3
CreateDirectory
是一個奇怪的場景。這是內置異步版本的理想選擇,特別適用於在網絡驅動器上打開/創建目錄。
通常,如果BCL不直接支持異步,您將能夠P /調用異步Win32 API。但是,在這種情況下,Win32 API實際上並不公開目錄的異步API。所以你必須更低 - 可能直接調用文件系統驅動程序(所有設備驅動程序都支持異步I/O,所以這肯定會起作用)。
所以,雖然它的效果並不理想,你在這種情況下關可能會更好,只是讓假貨異步方法,即在包裝的Task.Run
電話。
在附註上,Windows Store風格的目錄API是異步的。他們可能在Win32 API下面調用,但我真的很懷疑 - 我期望它們被實現爲假異步方法。
+0
謝謝!現在我知道如何繼續。假異步方法在其他完全異步應用程序中不是一個很好的解決方案: - / –
相關問題
- 1. 如何正確實現異步/等待
- 2. 如何使用異步/等待OnNext/OnError/OnCompleted方法實現IObserver?
- 3. 等待非異步方法
- 4. 異步方法並等待
- 5. 異步\等待方法
- 6. 異步/等待+ FromEvent方法
- 7. 等待異步WCF方法
- 8. 如何等待異步方法返回?
- 9. 如何等待異步方法結束?
- 10. 如何等待異步方法等待完成所有執行?
- 11. c#接口實現異步等待
- 12. 極簡主義實現異步等待
- 13. 無法等待異步擴展方法
- 14. 等待NodeJS中的異步方法
- 15. 異步並等待MvvmCross中的方法
- 16. 等待使用NSCondition的異步方法
- 17. 異步/等待方法的錯誤
- 18. 不要等待正在等待的異步方法內的異步調用
- 19. 如何實現等待多個異步請求的承諾?
- 20. 異步等待不等待
- 21. 等待或不等待一個AsyncController的異步方法
- 22. 如何等待第三方庫中的異步方法 - web api
- 23. 如何等待方法返回值?異步或同步
- 24. 等待異步方法回調
- 25. 不等待調用異步方法
- 26. 等待異步方法完成
- 27. 等待異步方法來完成
- 28. 等待兩種異步方法完成
- 29. 等待無效異步方法
- 30. 淨調用異步方法,並等待
檢查:: http://stackoverflow.com/questions/18373084/turn-this-code-into-a-task-to-run-asynchronously-on-another-thread 雖然總是好做一些研究你自己的問題,然後問這樣的餵食問題 –
我已經閱讀過你提到的這個問題。我不想在另一個線程上異步運行代碼,我想用真正的異步方法調用來運行它。 –
你會運行什麼'異步',其中的異步方法。 'Directory.CreateDirectory'不是'Async'方法 –