[C#] Using task to create a tool for searching string in files - 2

完成了第一步,在搜尋時UI不會鎖死以後,接下來想達成的目標是在搜尋時進度條能夠回報進度,從0%跑到100%。

參考:stack overflow

概念上應該是用兩層async/await方法,第一層方法是在所有搜尋動作完成後,回報工作完成顯示在UI上,到這裡跟上一篇文章的結果相同,但是在進入第一個動作以後的程式要做修改,呼叫的方法也加上async,並且在foreach內,檢查每一個檔案的方法前面加上await。

在stack overflow上參考的答案不知道為什麼在一個async方法中寫了兩次await,直接把程式碼貼到vs以後會出現錯誤,而vs提供的修正建議是在Task.Run的匿名函式內的()前加上async,讓這個方法變成另一組async/await。

不過後來想想,寫成三層的async/await應該沒有什麼意義,在這裡只需要兩層就夠了,所以就改寫成了現在的版本,測試過應該沒什麼問題。


接下來的目標是想要寫出接續的非同步執行方法,用在取得資料夾中所有檔案的更新時間。
其實本來只是希望可以有用時間來篩選搜尋的檔案的功能,例如:只搜尋更新時間在一週內的檔案文字,結果我拿一萬五千多個檔案測試的時候,UI又鎖死了XD

留言

這個網誌中的熱門文章

[python] nginx + uwsgi + django 環境部署

台灣人在上海辦台胞證換發