我想以这种方式使用它
detectedFile = Wait(directory, filter);
最原始的方法是使用循环,比如
while(true)
{
var found = Directory.EnumerateFiles(directory, filter).FirstOrDefault();
if(found != null) return found;
Thread.Sleep(1000);
}
有一个更好的方法吗?
我想以这种方式使用它
detectedFile = Wait(directory, filter);
最原始的方法是使用循环,比如
while(true)
{
var found = Directory.EnumerateFiles(directory, filter).FirstOrDefault();
if(found != null) return found;
Thread.Sleep(1000);
}
有一个更好的方法吗?
如果您想阻止您的线程但搜索文件是否存在,我将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
使用FileSystemWatcher实例并使用 WaitForChanged 方法,将WatcherChangeTypes .Created 传递给它。