委托具有多个签名的方法

时间:2011-11-06 16:44:51

标签: c# c#-2.0

如何向线程添加带签名的方法?

我正在尝试使用方法testAdd(DirectoryEntry d, TreeNode t)

向TreeView GUI添加项目

我是正常创建线程的:

Thread t1;
t1 = new Thread(new ThreadStart(testAdd(directory,rootNode));t1.Start();
t1=new Thread(delegate() {testAdd(directory, rootNode);})
t1.start();

我收到错误告诉我使用invoke。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您遇到的问题是您无法从WinForms应用程序中的后台线程访问UI元素。您正在使用的签名对UI元素进行非法操作没有任何问题。 UI元素的实际变异必须出现在应用程序的UI /主线程上。新的Thread实例保证不会这样。

可以做一些工作来计算你将在后台线程上添加什么,然后使用Invoke返回UI线程。但实际的添加必须在UI上进行。