委托具有多个签名的方法
本文关键字:方法 | 更新日期: 2023-09-27 18:13:42
如何为线程添加带有签名的方法?
我试图添加一个项目到TreeView GUI使用方法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();
我得到错误告诉我使用调用。
如何解决这个问题?
你遇到的问题是你不能从WinForms应用程序的后台线程访问UI元素。你使用的签名没有问题,只是对UI元素进行了非法操作。UI元素的实际变化必须发生在应用程序的UI/主线程上。一个新的Thread
实例保证这不会是真的。
有可能做的工作来计算你将添加一个后台线程,然后使用Invoke
回到UI线程。但实际的添加必须发生在UI上。