今天用winform作了一个小程序,主要是用于远程数据的登陆采集,由于数据量很是大,到时每次点击按钮执行程序的时候界面都会出现假死状态,具体表现是没法拖动窗口,没法最小化或关闭等,只能任务管理进程结束任务。小程序
由于代码里面循环操做的次数比较多,后来优化了也无果。也是找了下这方面的相关资料做下总结:多线程
一、定义委托对象异步
二、异步操做完成时需执行的方法函数
三、由于采集程序须要天天自动采集 因此添加了定时器的功能;其中的DownLoadCsv 就是耗时执行的方法优化
这样一来界面就跟正常的同样了。查了一下相关资料 使用CheckForIllegalCrossThreadCalls = false线程
以下解释:orm
在多线程程序中,新建立的线程不能访问UI线程建立的窗口控件,若是须要访问窗口中的控件,能够在窗口构造函数中将CheckForIllegalCrossThre对象
adCalls设置为 false进程