2012-04-02 93 views
4

我有一個背景工作者.. 在backgroundworker_doWork 我想檢查一個文件是否存在或不..然後我等待文件被創建和一旦其創建再進行與工作的假設做C# - backgroundworker等待文件被創建

我想要做這樣的事..但我只是弄清楚如何做到這一點..即時通訊新本:

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
{ 
    if(File.Exists(filename)){ 
     //.. code to do my work ... 
    } 
    else{ 
     //..Wait for the file to be create... 
    } 
//... end of backgroundworker 
} 

謝謝提前

回答

7

您可以使用FileSystemWatcher在創建文件時獲取事件。

+0

因爲情況是,該文件存在一段時間,然後另一個進程刪除它..所以我必須回到檢查狀態,如果該文件被刪除..一個片段或類似的東西會真的有幫助 – 2012-04-02 14:43:27

+1

'FileSystemWatcher'有多個事件:用於創建和刪除。我建議你閱讀手冊,並用這些知識嘗試改變處理文件的算法。 – 2012-04-02 14:46:08

3

你應該真的使用FileSystemWatcher。對於「等待任務」,BackgroundWorker不是正確的工具 - 我會使用FileSystemWatcher或傳統線程。