委托具有多个签名的方法

本文关键字:方法 | 更新日期: 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上。