我想知道如何在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. 異步\等待方法
- 3. 如何等待異步方法結束?
- 4. c#接口實現異步等待
- 5. 異步/等待方法的錯誤
- 6. 等待或不等待一個AsyncController的異步方法
- 7. 如何等待方法返回值?異步或同步
- 8. 如何等待第三方庫中的異步方法 - web api
- 9. 等待完成異步方法
- 10. Scala測試異步和等待方法
- 11. 等待異步方法在c#調用
- 12. 淨調用異步方法,並等待
- 13. 等待異步方法完成
- 14. 調用異步方法而不等待
- 15. 等待異步方法完成
- 16. 嵌套異步/等待方法
- 17. 異步方法跳過等待
- 18. HAXE - 如何實現異步等待對Flash瞄準
- 19. NodeJs - 異步/待機異步/等待
- 20. silverlight。等待結束異步方法同步方法
- 21. 等待一個同步方法,其中調用異步方法
- 22. 異步方法的同步版本
- 23. 在其阻止版本中使用異步實現方法
- 24. 如何等待auxiliar異步方法的返回?
- 25. 如何等待異步方法的回調返回值?
- 26. 異步/等待方法和異常處理的最佳做法
- 27. 在不等待非異步方法的情況下調用異步方法?
- 28. 異步/等待appengine
- 29. 異步/等待與
- 30. 如何在異步函數中等待請求方法
檢查:: http://stackoverflow.com/questions/18373084/turn-this-code-into-a-task-to-run-asynchronously-on-another-thread 雖然總是好做一些研究你自己的問題,然後問這樣的餵食問題 –
我已經閱讀過你提到的這個問題。我不想在另一個線程上異步運行代碼,我想用真正的異步方法調用來運行它。 –
你會運行什麼'異步',其中的異步方法。 'Directory.CreateDirectory'不是'Async'方法 –