C# 函数执行时间长,该如何处理

C# 函数执行时间长
打开一个文件时,需要用数据填充表格,执行时间为5s左右,导致界面变卡,该怎么处理这种,打开文件需要显示到界面的问题,可以避免界面变卡??数据量比较大,有1w多条数据,填充表格。
------解决方案--------------------
一般可以显示个loading,做的好点,可以再加个进度条,再做的好点,可以画面归画面显示并能操作文件之外功能,然后在醒目位置放置文件进度条,全部读取完成后再运行用户进行文件操作
------解决方案--------------------
同上.
反正都是再开个线程.
要么另一线程显示进度条,主窗口隐藏
要么另一线程去读文件,主窗口可以先操作其他部分.
------解决方案--------------------
另开线程处理数据,避免界面卡死。
------解决方案--------------------
异步处理那个函数不行吗
------解决方案--------------------
打开文件在线程里做,界面上弄个状态显示(进度条或者就显示处理数据的条数的lable),让用户知道程序还在运行
然后异步跟新界面显示,填充表格
这样的话,就可以达到你的目的了

------解决方案--------------------
ThreadC# 函数执行时间长,该如何处理
------解决方案--------------------
首先 1. 可以分页
     2.用Thread  .  做一个异步处理 就ok
   
http://www.51zxw.net/study.asp?vip=8963801 
有需要学习的可以进来秒哈  
------解决方案--------------------
开一个后台线程,或者使用异步的方式。都行
------解决方案--------------------
应该做到只输出当前界面的数据(比如从第3到12条这样子),其实应该有一套这样的界面组件(自动处理)。
------解决方案--------------------
1W多条都要加载出来,这个设计不大合乎常理。

如果 LZ 非要这么干,楼上几位用进程条是个好办法,我这里也提供另外一个,你可以只加载 前 500 条,后面的不要一下子都加载出来,点击“更多”时,再加载其他的数据。
------解决方案--------------------
可以关注下控件的虚拟模式,或可解决
------解决方案--------------------
你这种情况,最普遍的方法就是只在可视域内显示数据就可以了。既然全部加载完比较慢,那就只加载一部分。采用分页是个可取的解决方案。
------解决方案--------------------
如果是显示问题,而且用了ListView,那么使用VirtualMode
如果是数据本身加载问题,用一个BackGroundWorker去加载。
------解决方案--------------------
引用:
你这种情况,最普遍的方法就是只在可视域内显示数据就可以了。既然全部加载完比较慢,那就只加载一部分。采用分页是个可取的解决方案。

说实话分页真的不是什么友好的设计.
比如每页显示20行,我想对20行和21行的数据做个对比,还要来回翻页.
比较好的设计思路是一开始只加载个空表,判断用户滚动条的位置动态加载当前需要显示的数据.
------解决方案--------------------
一般的解决办法:1.分页;2.多线程;3.异步。
------解决方案--------------------
引用:
Quote: 引用:

同上.
反正都是再开个线程.
要么另一线程显示进度条,主窗口隐藏
要么另一线程去读文件,主窗口可以先操作其他部分.


现在的问题是:打开数据时,跳转到数据显示界面需要填充多个表格,其中一个表格就有上万条数据?还有另一种情况,测量完成转到数据界面,也需要填充表格,也是上万条数据,改如何解决?

无非就是上面说到的3种方式
1.显示等待,主要是解决主线程卡的问题.不过如果需要频繁的来回切换窗口,而每次都要显示5秒等待,也不是一个好的体验.
2.开另一个线程去取数据,然后用委托的方式将数据加载到表格中.
这样在表格加载完成之前,用户应该已经能够看到一部分数据了.(5秒不会都是用来通信,表格加载也很耗时,放线程里去)
3.动态显示数据,用户看到哪里就加载相应的数据给用户看,而不是一股脑都扔到表格里.
------解决方案--------------------
再开一个thread,等数据读取好了,然后invoke下,填充到ui上。
------解决方案--------------------
引用:
一般的解决办法:1.分页;2.多线程;3.异步。
 同意!如果是web的话,可以采取滑动滚动条,Ajax 异步加载,这种体验方式好点。