这有点令人费解,但我会尽力解释清楚。
我正在使用带有通知过滤器的 FileSystemWatcher
toFileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.FileName;
我有一个 .Created 方法和一个 .Changed 方法。
当 .Created 事件触发时,它会使用观察程序提供的文件名进行一些初步检查,检查文件是否已被查看,获取目标文件夹,并返回验证信息。
我遇到了一个问题,验证在 .Created 方法的末尾进行,它访问文件以在将其复制到目标位置之前进行一些验证。当我到达这一点时,如果文件很大并且仍在从其源复制的过程中,它会返回一个 io“文件已在使用”错误。
我想做的是完成所有初步代码,然后我希望线程“挂起”,直到文件的 .Changed 方法触发,表明文件已完成,因为我只捕获对最后访问过滤器。
最佳答案
使用可以使用一个ManualResetEvent . Created 方法可以完成其工作,然后等待 Created 方法可以继续的 Changed 事件信号。
关于c# - 在完成线程之前等待 FileSystemWatcher 事件触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4090771/