2012-04-02 63 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或传统线程。