Does FileSystemWatcher create its own thread?
我希望这项工作在不同的线程上完成,但是我必须创建一个线程还是在不同的线程上完成所有工作?
赞:
1 2 3 4 5 6 7 8 9 10 11
| Thread fileThread = new Thread (() =>
{
FileWatcher = new FileSystemWatcher ();
FileWatcher .Created += OnFileEvent ;
FileWatcher .Deleted += OnFileEvent ;
FileWatcher .Renamed += OnRenameEvent ;
FileWatcher .EnableRaisingEvents = true;
});
fileThread .Start(); |
您不必创建线程。这些事件将在单独的线程上自动调用。
- 好的,我还有一个问题:一旦我停止监视程序,我就设置enableraisingeevents = false,但是当我想再次启动监视程序时,我不知道我是否应该只启用enableraisingevents = true还是应该创建一个新的实例。喜欢上面的代码的filesystemwatcher,您怎么看?谢谢
-
@syncis:如果保留实例,则可以再次将其打开。
-
好的,我担心的是,我不希望它在某个时候做任何工作,如果它的enableraisingevents = false,我认为它会完成所有工作,但不会引发任何事件。
-
@syncis:如果您对此担心,则应该创建一个新对象。但是,仅关闭enableraisingevents事件并不会阻止它监听更改,您应该在不再使用它时调用Dispose。
-
调试器将如何处理呢?
-
@Guffa为什么您认为关闭EnableRaisingEvents不会阻止它监听?我可以在源代码中看到的是,它将。