C#在多线程中,如果委托传递的方法带参并且有返回值该如何编写?

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:43:44
我目前只能够使用无参方法来传给一个线程,不知道带参和有返回值的怎么写。
类似Thread xxx = new Thread(new ThreadStart(yyy));
xxx.Start();
那是否能够举个例子说明一些你的特殊方法呢?
除了全局变量。

线程是无法通过正常方法带参和返回值的。
不过你可以通过特殊方法来实现。

public delegate void ButtonChange(Button bt, string str, bool a);

public void Change(Button bt, string str, bool a)
{
bt.Text = str;
bt.Enabled = a;
}
public void ShowChange(Button bt, string str, bool a)
{
ButtonChange my = new ButtonChange(Change);
object[] obj = new object[] { str, a };
bt.Invoke(my, obj);
}