c#中如何跨线程调用windows窗体控件
展开全部
1、用CheckForIllegalCrossThreadCalls属性了,忽略线程安全
Control.CheckForIllegalCrossThreadCalls = false;
Thread k = new Thread(() => { button1.Text = "1234"; });
k.Start();
2、委托来改了。
public delegate void SetTimeInfo(string timeinfo);//委托
写实例了
private void SetTextTime(string timeinfo)
{
if (this.textBox1.InvokeRequired)
{
SetTimeInfo time = new SetTimeInfo(SetTextTime);
this.textBox1.BeginInvoke(time, timeinfo);
}
else
{
this.textBox1.Text = timeinfo;
}
}
然后就启线程调用了。
Control.CheckForIllegalCrossThreadCalls = false;
Thread k = new Thread(() => { button1.Text = "1234"; });
k.Start();
2、委托来改了。
public delegate void SetTimeInfo(string timeinfo);//委托
写实例了
private void SetTextTime(string timeinfo)
{
if (this.textBox1.InvokeRequired)
{
SetTimeInfo time = new SetTimeInfo(SetTextTime);
this.textBox1.BeginInvoke(time, timeinfo);
}
else
{
this.textBox1.Text = timeinfo;
}
}
然后就启线程调用了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询