这有点复杂,但我会尽可能地尽力解释。等待FileSystemWatcher事件在完成线程之前触发
我使用的FileSystemWatcher的与
toFileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.FileName;
一个通知过滤器我有一个.Created方法和.Changed方法。
当.Created事件触发时,它会使用观察器提供的文件名进行一些初步检查,检查是否已经看到文件,获取目标文件夹并返回验证信息。
我遇到了一个问题,即验证是在.Created方法的末尾,它在将文件复制到目标文件之前访问该文件进行一些验证。当我到达这一点时,如果文件很大并且仍然处于从源文件复制的过程中,它将返回一个io“文件已被使用”的错误。
我想要做的是完成所有的初步代码,然后我希望线程“挂起”,直到该文件的.Changed方法触发指示文件完成,因为我只捕获更改最后一个访问过滤器。
+1,表示同意。但起皱:它不是典型的生产者 - 消费者模式。操作成功后才能使用。 – 2010-11-03 21:21:47
是的,绝对有一些棘手的细节需要解决...... – 2010-11-05 02:41:51