如何向线程添加带签名的方法?
我正在尝试使用方法testAdd(DirectoryEntry d, TreeNode t)
我是正常创建线程的:
Thread t1;
t1 = new Thread(new ThreadStart(testAdd(directory,rootNode));t1.Start();
t1=new Thread(delegate() {testAdd(directory, rootNode);})
t1.start();
我收到错误告诉我使用invoke。
如何解决这个问题?
答案 0 :(得分:0)
您遇到的问题是您无法从WinForms应用程序中的后台线程访问UI元素。您正在使用的签名对UI元素进行非法操作没有任何问题。 UI元素的实际变异必须出现在应用程序的UI /主线程上。新的Thread
实例保证不会这样。
可以做一些工作来计算你将在后台线程上添加什么,然后使用Invoke
返回UI线程。但实际的添加必须在UI上进行。