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

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

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

1、定义委托对象

2、异步操作完成时需执行的方法

3、因为采集程序需要每天自动采集 所以添加了定时器的功能;其中的DownLoadCsv 就是耗时执行的方法

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

如下解释:

在多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,如果需要访问窗口中的控件,可以在窗口构造函数中将CheckForIllegalCrossThre

adCalls设置为 false

posted @ 2013-11-07 15:44  Good_Code  阅读(1169)  评论(0编辑  收藏  举报