我目前正在實施文件掃描實用程序,並已實施以下步驟來創建掃描多個文件夾的並行任務,並在掃描正在進行時保持GIU響應。任務並行 - 我錯過了什麼?
var task = Task.Factory.StartNew(() => scanFiles(findType, location));
上面的行位於3個重載中,其中一個重複遍歷多個位置值。
這是在使用BackgroundWorker
進行了一些實驗後發現的,並且在創建多個BackgroundWorkers
時遇到了日誌文件訪問等方面的限制。
雖然我是一線解決方案的狂熱粉絲,但我擔心我錯過了一些東西。該應用程序運行良好,並正在完美工作。這真的很容易,或者我在處理多項任務時缺少一些重要的東西嗎?
是的,這是多虧了[.NET任務並行庫](http://msdn.microsoft.com/en-us/library/dd460717.aspx)。關於日誌的侷限性,只有一個文件不能一次被多個寫入者訪問。如果您正在編寫日誌,請在並行任務之外執行此操作,或者使用異步(異步)方法編寫日誌,以便它不會一次調用多次。 –
感謝您的提示 - 我已經有一個功能來記錄細節。日誌中的條目可以混合,因爲它們在以後的Excel中被詢問。快樂的日子:-) – bhs