c# - 在完成线程之前等待 FileSystemWatcher 事件触发

标签 c# multithreading filesystemwatcher

这有点令人费解,但我会尽力解释清楚。

我正在使用带有通知过滤器的 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/

相关文章:

c# - 快速启动简单的 C# FileSystemWatcher Windows 服务

c# - 通过 Microsoft.DirectX.AudioVideoPlayback 显示对视频播放的控制

linux - 一种检测哪一侧套接字对等点触发断开连接的方法

c# - 用于从字符串中删除字符序列的String方法

multithreading - 如何在aix上查看正在运行的进程的所有线程堆栈?

c# - 新线程导致 "Method Name Expected"错误

powershell - Cryptolocker 蜜 jar FileSystemWatcher

c# - 为什么 FileSystemWatcher 关闭程序?

c# - 我怎样才能在oracle中输出一个参数作为varchar2

c# - C# 中的电子邮件通知系统