本帖最后由 chaoyangzhixue 于 2012-08-28 15:55:47 编辑

解决方案 »

  1.   

    线程+委托http://blog.sina.com.cn/s/blog_6c762bb301010zvj.html
      

  2.   

    BackgroundWorker
    主要用在单独的线程上执行操作。BackgroundWorker类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用 BackgroundWorker类方便地解决问题。
      

  3.   

    思路完全反了,你需要的不是进度条不被主线程卡,而是不要去卡主线程
    目测button1_Click没什么问题啊,应该不会卡
      

  4.   

    1、不用多线程,不用委托,进度条值发生变化后加入 progressBar1.Refresh();
    优点:简单方便,缺点:主界面假死,但是进度条会增长
    2:backgroundWorker组件
    3:多线程:
    我试了下你的代码 可以运行 主界面没有卡死 进度条 Label正常