File io 跨线程操作无效:从创建控件的线程以外的线程访问控件
我正在编写一个filewatcher windows应用程序,它将查找指定文件夹中的更改,然后将详细信息记录在txt文件中 我完全遵循了下面这篇文章中提到的内容 当我从应用程序中点击F5,然后在正在监视的文件夹中创建或修改文件时,它会抛出下面提到的错误 请帮忙File io 跨线程操作无效:从创建控件的线程以外的线程访问控件,file-io,File Io,我正在编写一个filewatcher windows应用程序,它将查找指定文件夹中的更改,然后将详细信息记录在txt文件中 我完全遵循了下面这篇文章中提到的内容 当我从应用程序中点击F5,然后在正在监视的文件夹中创建或修改文件时,它会抛出下面提到的错误 请帮忙 跨线程操作无效:控件“txtFolderActivity”是从创建它的线程以外的线程访问的。您必须使用表单上的Invoke方法,例如,通过匿名委托对事件进行更改 事件处理程序由另一个线程引发。此第二个线程无法访问表单中的控件。它必须“调
跨线程操作无效:控件“txtFolderActivity”是从创建它的线程以外的线程访问的。您必须使用表单上的Invoke方法,例如,通过匿名委托对事件进行更改 事件处理程序由另一个线程引发。此第二个线程无法访问表单中的控件。它必须“调用”它们,让线程完成最初创建它们的所有控制工作 而不是:
myForm.Control1.Text = "newText";
你必须写:
myForm.Invoke(new Action(
delegate()
{
myForm.Control1.Text = "newText";
}));
您正在尝试从非UI线程更新UI。UI具有线程关联,只能从创建它的线程更新。如果您使用的是WinForms,请查看MSDN文章。基本上,您需要通过方法更新UI。对于WPF,您需要使用。基本上,您的应用程序中至少必须有两个线程,并且您的控制逻辑所在的线程不同,因此您会遇到此错误,因为这些控件不是线程安全的 这是为了防止多个线程同时更改同一控件可能导致的问题 通过查看此处,您可以找到更多详细信息:
+1-我需要尝试你的方法来解决这个问题,因为它比我目前的方法简单得多。