7 file-io
我正在编写一个filewatcher Windows应用程序,它将查找指定文件夹中的更改,然后将详细信息记录在txt文件中.
我完全按照以下文章中提到的那样 http://www.codeproject.com/KB/dotnet/folderwatcher.aspx
当我从我的应用程序中按F5然后创建或修改正在监视的文件夹中的文件时,它会抛出下面提到的错误.
请帮忙
跨线程操作无效:控制'txtFolderActivity'从其创建的线程以外的线程访问.
小智 10
您必须在表单上使用Invoke方法,例如使用匿名委托来对事件做出更改.
事件处理程序是用另一个线程引发的.第二个线程无法访问表单中的控件.它必须"调用"它们让线程完成所有控制最初创建它们的工作.
代替:
myForm.Control1.Text = "newText";
Run Code Online (Sandbox Code Playgroud)
你必须写:
myForm.Invoke(new Action(
delegate()
{
myForm.Control1.Text = "newText";
}));
Run Code Online (Sandbox Code Playgroud)
您正在尝试从非 UI 线程更新 UI。UI 具有线程关联性,并且只能从创建它的线程进行更新。如果您使用的是 WinForms,请查看如何:对 Windows 窗体控件进行线程安全调用MSDN 文章。基本上,您需要通过Control.Invoke方法更新 UI 。对于 WPF,您需要使用DispatcherObject。
归档时间: |
|
查看次数: |
4910 次 |
最近记录: |