日期:2014-05-17  浏览次数:20800 次

关于多线程的疑问,研究了一天,还是整不对!
假设:界面上有一个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;

------解决方案--------------------
http://download.csdn.net/detail/caozhy/4832657
------解决方案--------------------
多线程     ~
------解决方案--------------------
为什么不做个等待动画?
------解决方案--------------------
使用BackGroundWorker组件,参考:http://www.cnblogs.com/artech/archive/2008/07/30/1256144.html
------解决方案--------------------
引用:
网上有人对此评价褒贬不一.

你搬出这个“褒贬不一”是想说明什么呢?网上对“c#”其实更加地褒贬不一。
------解决方案--------------------
自己懒得动手,那么自己是一个初学者最大的敌人。
------解决方案--------------------
这个问题的最正规的解决方法就是多线程。其他方法要么解决不了问题,要么就是一个差劲的方法。
------解决方案--------------------

一天都搞不定.说明基础没打好.不仅仅是多线程的问题了.
------解决方案--------------------
引用:
真不是懒得动手,研究了一天,http://www.cnblogs.com/hnfxs/p/3192009.html这里也写得很详细,但真正用到自己上面那个需求上时,总是不成功,才发贴求助于大家.

帮忙顶顶.顺便问下.lz8月7号就发帖问了..到现在还没解决呀?
------解决方案--------------------
引用:
上次的处理与这次有一些差异,我也套用过相应的方法,还是没有功能,