博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Form (C#) 进度条处理
阅读量:4657 次
发布时间:2019-06-09

本文共 1777 字,大约阅读时间需要 5 分钟。

问题: 后台处理大量数据,要求主界面不卡死,显示进度条,且主程序体在数据处理完毕后继续运行。

 

1   { 2     //主程序1 3   } 4    //插入代码 5   Thread t1 = new Thread(StartWork); 6   t1.IsBackground = true; 7   t1.Start(); 8   finishHandler= 9   delegate(){10     //主程序211     //此处可能会报错:调用了不是此线程创建的……blabla12     //使用this.Invoke(相关代码委托);13 }14 15 /16         //委托相关17         private delegate void PRoManager();18         private delegate void OnFinished();19         private OnFinished finishHandler;20 21         private void StartWork(Object o)22         {23             PRoManager prostart = new PRoManager (startPro);24             progress.Invoke(prostart);25            26        {
27 //数据处理代码 28        }29 if (finishHandler!=null)30 finishHandler();31 }32 33     //progressBar 相关代码34 System.Windows.Forms.Timer timer;35 private void startPro()36 {37 progress.Minimum = 0;38 progress.Maximum = 100;39 progress.Value = 0;40 41 timer = new System.Windows.Forms.Timer();42 timer.Tick += new EventHandler(tPro_Tick);43 timer.Start();44 }45 private void tPro_Tick(object sender,EventArgs e)46 {47 int iNum = progress.Value;48 if (iNum != 100)49 {50 progress.Increment(4);51 }52 else53 {54 progress.Value = 0;55 }56 }57 private void closePro()58 {59 if(timer!= null)60 {61 timer.Stop();62 timer.Dispose();63 timer = null;64 }65 progress.Value = 100;66 }

 

转载于:https://www.cnblogs.com/nightcatcher/p/4375701.html

你可能感兴趣的文章
mapreduce版pagernak
查看>>
【Unity与23种设计模式】抽象工厂模式(Abstract Factory)
查看>>
什么是GC Roots
查看>>
寄存器总结
查看>>
c++实验6
查看>>
Java中的参数传值方式
查看>>
ip routing 开启三层路由模式
查看>>
Python——模块——linecache(对文本行的随机访问)
查看>>
STM32F103引脚功能定义
查看>>
C++:默认的构造函数
查看>>
C++:析构函数
查看>>
【转】构造和析构函数能否内联
查看>>
20172301 2017-2018-2 《程序设计与数据结构》实验一《Java开发环境的熟悉》实验报告...
查看>>
windows 2012(64位) IIS配置asp程序 500 - 内部服务器错误。您查找的资源存在问题,因而无法显示。...
查看>>
第十章NFS 服务器管理也配置
查看>>
C题 hdu 1408 盐水的故事
查看>>
《将博客搬至CSDN》
查看>>
java基础之 创建对象的几种方式
查看>>
[HNOI2008]明明的烦恼
查看>>
Navicat不能连接linux数据库问题
查看>>