C# 窗口页面卡的处理方案-异步编程委托

今天用winform作了一个小程序,主要是用于远程数据的登陆采集,由于数据量很是大,到时每次点击按钮执行程序的时候界面都会出现假死状态,具体表现是没法拖动窗口,没法最小化或关闭等,只能任务管理进程结束任务。小程序

由于代码里面循环操做的次数比较多,后来优化了也无果。也是找了下这方面的相关资料做下总结:多线程

一、定义委托对象异步

二、异步操做完成时需执行的方法函数

三、由于采集程序须要天天自动采集 因此添加了定时器的功能;其中的DownLoadCsv 就是耗时执行的方法优化

这样一来界面就跟正常的同样了。查了一下相关资料 使用CheckForIllegalCrossThreadCalls = false线程

以下解释:orm

在多线程程序中,新建立的线程不能访问UI线程建立的窗口控件,若是须要访问窗口中的控件,能够在窗口构造函数中将CheckForIllegalCrossThre对象

adCalls设置为 false进程

相关文章
相关标签/搜索