我想以这种方式使用它
detectedFile = Wait(directory, filter);
最原始的方法是使用循环,比如
while(true)
{
var found = Directory.EnumerateFiles(directory, filter).FirstOrDefault();
if(found != null) return found;
Thread.Sleep(1000);
}
有更好的方法吗?
答案 0 :(得分:1)
如果你想阻止你的线程但是搜索一个文件是否存在,我会使用FileSystemWatcher
作为Blorgbeard在一个单独的线程上建议并使用这样的东西阻止你的主线程......
ManualResetEventSlim fileDetected = new ManualResetEventSlim();
fileDetected.Reset(); // sets or makes sure signal is false
fileDetected.Wait(); // waits for signal to be set true
fileDetected.Set(); // sets signal to true
答案 1 :(得分:0)
使用FileSystemWatcher实例并使用WaitForChanged方法,传递它WatcherChangeTypes。创建。