這有點複雜,但我會盡可能地盡力解釋。等待FileSystemWatcher事件在完成線程之前觸發
我使用的FileSystemWatcher的與
toFileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.FileName;
一個通知過濾器我有一個.Created方法和.Changed方法。
當.Created事件觸發時,它會使用觀察器提供的文件名進行一些初步檢查,檢查是否已經看到文件,獲取目標文件夾並返回驗證信息。
我遇到了一個問題,即驗證是在.Created方法的末尾,它在將文件複製到目標文件之前訪問該文件進行一些驗證。當我到達這一點時,如果文件很大並且仍然處於從源文件複製的過程中,它將返回一個io「文件已被使用」的錯誤。
我想要做的是完成所有的初步代碼,然後我希望線程「掛起」,直到該文件的.Changed方法觸發指示文件完成,因爲我只捕獲更改最後一個訪問過濾器。
+1,表示同意。但起皺:它不是典型的生產者 - 消費者模式。操作成功後才能使用。 – 2010-11-03 21:21:47
是的,絕對有一些棘手的細節需要解決...... – 2010-11-05 02:41:51