您的位置:首页 > 编程语言 > C#

C# 多线程,跨线程访问

2018-01-01 18:14 218 查看
private void button4_Click(object sender, EventArgs e)
{
Thread thread1 = new Thread(ShowResult);
thread1.IsBackground = true;
thread1.Start();
}
private void ShowResult()
{
int a = 0;
for (int i = 0; i < 600000000; i++)
{
a = i;
}
if (this.textBox1.InvokeRequired)//是否要对文本框进行跨线程访问。
{
//Invoke:去找创建TextBox的线程(主线程(UI线程)),由主线程完成委托方法的调用。
this.textBox1.Invoke(new Action<TextBox, string>(ShowTextBoxValue), this.textBox1, a.ToString());//Action是无返回值的委托
}
else //否则不是跨线程访问
{
this.textBox1.Text = a.ToString();
}
}

//委托注册的函数,跨线程访问,跨线程修改TextBox的值,其实是通过invoke方法让主线程调用该方法。
private void ShowTextBoxValue(TextBox txt,string value)
{
txt.Text = value;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 线程