private void button1_Click(object sender, EventArgs e)
{
Thread T = new Thread(test);
T.IsBackground = true;
T.Start();//线程开启
}
private void test()
{
while (true)
{
Random r = new Random();
int i = r.Next(0, 1000000);
set(i.ToString());//调用方法来修改控件
if (i == 56)
{
return;
}
}
}
//public delegate void lun();
private void set(string i)
{
//利用invoke修改控件属性
this.Invoke(new Action(() =>
{
textBox1.Text = i;
}));
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("111111111");
}
private void button3_Click(object sender, EventArgs e)
{
Thread t1 = new Thread(test1);
t1.IsBackground = true;
t1.Start();
}
private void test1()
{
while (true)
{
Random r = new Random();
int i = r.Next(0, 1000000);
set1(i.ToString());
if (i == 56)
{
return;
}
}
}
//public delegate void lun();
private void set1(string i)
{
this.Invoke(new Action(() =>
{
textBox2.Text = i;
}));
}
使用这个思路来通过子线程执行循环实现控件实时更新,但是一次只能更新一个,如果两个线程同时开启控件会锁死等得到正确结果后才会恢复,希望有大佬能够给出意见建议实现多个控件都能通过子线程更新,思路比较古板请见谅。