【发布时间】:2015-04-07 17:50:31
【问题描述】:
我正在尝试从子线程更新按钮控件。 我在将参数传递给新线程时遇到了一些问题。 我收到以下消息: 'UpdateText' 没有重载匹配委托 'System.Threading.ParameterizedThreadStart' (CS0123)
据我了解 ParameterizedThreadStart 接受并键入“对象”参数。如何在我的 UpdateText 方法中将对象“button1”转换为 Button?
public delegate void MyDelegate(Control ctrl);
void Button1Click(object sender, EventArgs e)
{
Thread thr =new Thread(new ParameterizedThreadStart(UpdateText));
thr.Start(button1);
}
public static void UpdateText(Control control_button)
{
if (control_button.InvokeRequired)
{
MyDelegate md = new MyDelegate(UpdateText);
control_button.Invoke(md, control_button);
}
else
{
control_button.Text = "Updated";
}
}
【问题讨论】:
-
你可以使用 lamda
标签: c# multithreading invoke