文件观察程序没有断点就无法运行

Har*_*sha 1 c# filesystemwatcher

我创建了一个应用程序,它可以监视任何*.*文件的文件夹(目录).当我通过具有断点的VS2010进行调试时,该应用程序正常工作.

删除断点时,相同的应用程序不起作用.

我失踪的任何东西...

Han*_*ant 6

这是FSW的常见问题.调试器有帮助,因为它减慢了时间.当一个进程生成一个Change事件时,通常无法立即打开该文件.该进程仍然打开文件并将其锁定.调试器有帮助,因为断点为处理文件提供了处理时间.

您必须减慢代码中的时间.避免在事件处理程序中旋转,这会使您丢失更改通知.最好的方法是将文件的路径放在一个线程安全的List <>中,尝试用计时器清空.这也可以帮助您处理多个更改通知.和UI线程问题,FSW在线程池线程上生成其事件,您无法从中更新UI(但请参阅SynchronizingObject).