关于多线程的疑问,研究了一天,还是整不对!
假设:界面上有一个button1,textBox1,progressBar1,checkBox1四个控件,如何达到下面要求:
点击button1按钮,执行一个数据库查询方法,执行时间大约5分钟以上。为了不让界面假死,需要界面同时刷新textBox1,progressBar1两个控件的值:
1、textBox1控件的Text值,每秒从1,2,3开始递增;
2、progressBar1控件,从1 —— 100反复循环,每500毫秒刷新一次,到100后又循环从1开始;
当数据库查询方法结束时(如果用到线程,保留下面显示效果并结束线程):
A、checkBox1控件设置为:this.checkBox1.Checked = false;
B、textBox1控件Text值停下来,不再递增;
C、progressBar1控件this.progressBar1.Maximum = 100;
D、最后提示:MessageBox.Show("数据执行完成!");
实在搞不定了,自己弄要么不能更新textBox1控件的Text值,要么不能同时刷新textBox1,progressBar1两个控件的值,请大家帮忙,最好能有代码!!!
不能用这个方法:Control.CheckForIllegalCrossThreadCalls = false;