【发布时间】:2010-11-07 00:44:27
【问题描述】:
这有点令人费解,但我会尽量解释清楚。
我正在使用带有通知过滤器的 FileSystemWatcher
toFileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.FileName;
我有一个 .Created 方法和一个 .Changed 方法。
当 .Created 事件触发时,它会使用观察者提供的文件名进行一些初步检查,检查文件是否已被看到,获取目标文件夹,并返回验证信息。
我遇到了一个问题,即验证位于 .Created 方法的末尾,它会访问文件以进行一些验证,然后再将其复制到目标位置。当我到达这一点时,如果文件很大并且仍在从其源复制的过程中,它会返回一个 io“文件已在使用中”错误。
我想要做的是完成所有初步代码,然后我希望线程“挂起”,直到文件的 .Changed 方法触发,表明文件已完成,因为我只捕获对最后访问过滤器。
【问题讨论】:
标签: c# multithreading filesystemwatcher