当文件监视器事件被触发时,Windows窗体崩溃
本文关键字:Windows 窗体 崩溃 文件 监视器 事件 | 更新日期: 2023-09-27 18:04:30
我正试图将文件监控实现为windows窗体应用程序,我遇到了一个问题。当事件被触发时,我的表单总是崩溃。
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "";
FileSystemWatcher watch = new FileSystemWatcher();
watch.Path = @"C:'files'";
watch.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watch.Filter = "*.txt";
watch.Changed += new FileSystemEventHandler(writeTb);
watch.Created += new FileSystemEventHandler(writeTb);
watch.Deleted += new FileSystemEventHandler(writeTb);
watch.Renamed += new RenamedEventHandler(writeTb);
watch.EnableRaisingEvents = true;
}
private void writeTb(object source, FileSystemEventArgs e)
{
textBox1.Text += e.ChangeType + ": " + e.FullPath;
}
FileSystemWatcher
事件是从一个新线程调用的,如果你想更新任何控件,你必须将Invoke
返回到UI线程
private void writeTb(object source, FileSystemEventArgs e)
{
base.Invoke((Action)delegate
{
textBox1.Text += e.ChangeType + ": " + e.FullPath;
});
}