[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
參考:stack overflow
概念上應該是用兩層async/await方法,第一層方法是在所有搜尋動作完成後,回報工作完成顯示在UI上,到這裡跟上一篇文章的結果相同,但是在進入第一個動作以後的程式要做修改,呼叫的方法也加上async,並且在foreach內,檢查每一個檔案的方法前面加上await。
在stack overflow上參考的答案不知道為什麼在一個async方法中寫了兩次await,直接把程式碼貼到vs以後會出現錯誤,而vs提供的修正建議是在Task.Run
不過後來想想,寫成三層的async/await應該沒有什麼意義,在這裡只需要兩層就夠了,所以就改寫成了現在的版本,測試過應該沒什麼問題。
接下來的目標是想要寫出接續的非同步執行方法,用在取得資料夾中所有檔案的更新時間。
其實本來只是希望可以有用時間來篩選搜尋的檔案的功能,例如:只搜尋更新時間在一週內的檔案文字,結果我拿一萬五千多個檔案測試的時候,UI又鎖死了XD
留言
張貼留言