我的C#项目中有一个要求。我必须在一段时间内扫描文件,并在几小时后停止扫描。为了连续观看文件,我使用了FileSystemWatcher()
类,如果重命名,创建,删除任何文件,此类将连续查看文件。现在,我的要求是在一段时间后停止扫描文件。我启动了StartWatcher()
方法来启动FileSystemWatcher()
课程。我有一段时间。如何在一段时间后调用stopWatcher()
方法。
任何快速的想法??
m_monitor.StartWatcher();
// code in C# so that I can call StopWatcher after some period of time.
m_monitor.StopWatcher();
答案 0 :(得分:1)
解决这个问题的方法不止一种。一种简单的方法是使用Timer之类的:
private Timer myTimer = null;
public void YourMethod()
{
m_monitor.StartWatcher();
myTimer = new Timer(60000); // 60 seconds
myTimer.AutoReset = false; // only trigger once
myTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
myTimer.Enabled = true;
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
m_monitor.StopWatcher();
}
没有测试过,但这会让你朝着正确的方向前进。
答案 1 :(得分:0)
您可以使用TPL的延迟。
public async void StartFileSystemWatcher()
{
m_monitor.StartWatcher();
await Task.Delay(Timeout);
m_monitor.StopWatcher();
}