当前位置: 首页 > news >正文

怎么选择锦州网站建设翔安建设局网站

怎么选择锦州网站建设,翔安建设局网站,开封公司网站如何制作,wordpress是干嘛的原文#xff1a;http://www.cnblogs.com/scy251147/archive/2012/01/08/2305319.html 由于之前利用Winform的ListView进行大数据量加载的时候#xff0c;诟病良多#xff0c;所以今天试着用WPF的ListView来做了一下#xff0c;结果没有让我失望#xff0c;我将一个拥有430…原文http://www.cnblogs.com/scy251147/archive/2012/01/08/2305319.html   由于之前利用Winform的ListView进行大数据量加载的时候诟病良多所以今天试着用WPF的ListView来做了一下结果没有让我失望我将一个拥有43000行510列的csv文件导入到了ListView中总共耗时在10s左右并且在导入的过程中软件界面上的提示信息一直在提示当前导入了多少条。在整个导入的过程中没有感觉到ListView的闪烁。      在测试大数据量加载的时候我们有两件事情需要完成第一个就是考虑到大数据量我们得利用异步方式来进行否则界面及其容易被阻塞住第二个就是由于数据量过大导入时间可能比较长如何通知用户当前导入的进度。      针对问题一可以考虑利用委托的异步方式进行针对问题二可以考虑到线程和UI交互的方式。      首先要说的是大数据量的导入和WinForm不同的是在导入数据到ListView之前我们需要先将数据导入到一个DataTable中然后利用GridView来处理DataTable最后绑定即可见代码流程 /// summary/// 开始对BindData函数进行异步处理/// /summaryprivate void BeginBindData() { ........ }/// summary/// 对BindData函数进行异步处理完毕向用户发送通知/// /summary/// param nameiar/paramprivate void EndBindData(IAsyncResult iar) { ........ }/// summary/// 考虑到BindData导入数据比较耗时采用了BeginBindData来进行异步加载/// /summaryprivate void BindData() { ........ } 这就是整个异步加载方式的执行流程下面见具体代码 #region Invoke the Binding Data method asynchorously/// summary/// 开始对BindData函数进行异步处理/// /summaryprivate void BeginBindData() { BindDataAsync bindData new BindDataAsync(BindData); IAsyncResult iar bindData.BeginInvoke(new AsyncCallback(EndBindData), bindData); tsStatus.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { tsStatus.Content 正在加载中。。。; })); }/// summary/// 对BindData函数进行异步处理完毕向用户发送通知/// /summary/// param nameiar/paramprivate void EndBindData(IAsyncResult iar) { tsStatus.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { tsStatus.Content 加载完毕。。。; })); BindDataAsync bindData (BindDataAsync)iar.AsyncState; bindData.EndInvoke(iar); }/// summary/// 考虑到BindData导入数据比较耗时采用了BeginBindData来进行异步加载/// /summaryprivate void BindData() { GetHeader(); DataTable dt LoadData(); tsStatus.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { tsStatus.Content 正在绑定数据请稍候。。。; }));//using Dispatcher to avoid crossing thread exception listView1.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate {foreach (DataColumn item in dt.Columns) { GridViewColumn gvc new GridViewColumn();//设置行的绑定源 gvc.DisplayMemberBinding new Binding(item.ColumnName);//设置头部名称 gvc.Header item.ColumnName; gv.Columns.Add(gvc); }//设置显示方式利用GridView来显示 listView1.View gv;//设置待绑定的上下文数据对象 listView1.DataContext dt;//绑定数据不可缺少否则导致绑定失败 listView1.SetBinding(ListView.ItemsSourceProperty, new Binding()); })); }#endregion 其次关于如何向用户发送通知这个涉及到了线程和UI交互在Winform中我们可以通过Control.InvokeRequired来判断是否需要进行交互然后通过Invoke方法进行进一步处理而在WPF中则需要利用Dispacther来进行处理也即Control.Dispacter方法在代码中是这样做到的拿名称为tsStatus的Label控件来说 tsStatus.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { tsStatus.Content 当前已经加载count条数据。。。; }));   在Action中用了匿名方法来实现非常方便。转载于:https://www.cnblogs.com/hhhh2010/p/8675893.html
http://www.zqtcl.cn/news/883903/

相关文章:

  • 温州建网站哪家强网站建设谈客户说什么
  • 网站的子域名怎么设置整站seo排名外包
  • 免费网站在哪下载苏州建设银行网站
  • 邹平 建设项目 网站公示怎样做网站卖自己的产品教程
  • 手机免费网站建设哪家公司好免费动态域名申请
  • 提升网站排名怎么提交自己的网站
  • cms网站开发phpwordpress有什么功能
  • 专业网站制作解决方案自己在家搭建服务器
  • 中小企业网站提供了什么英文营销网站建设
  • 玉环市建设工程检测中心网站网站建设服务的具体条件
  • 主机网站wampserver搭建网站
  • 建设银行网站点不进去深圳龙华区招聘网最新招聘信息
  • 网站建设公司现在还挣钱吗wordpress棋牌
  • 网站建设有什么技术自媒体平台哪个好
  • 可以建网站的软件南昌seo代理商
  • 手机网站建设宽度中小型企业网站模板
  • 网站开发需要的所有技术中信建设有限责任公司历任董事长
  • 安徽省建设干部学校网站首页做软件是什么工作
  • 图书馆网站设计方案安徽质量工程建设网站
  • 电子商务网站建设效果那个网站可以做链接
  • 怎样做投资与理财网站网页设计优秀案例分析
  • 网站制作需要学什么搜狗网页版入口
  • html源码网seo搜索优化工程师招聘
  • 做的网站在小窗口中怎么保持中间广东省公共资源交易中心地址
  • 合肥做网站汇站网织梦网站广告代码教程
  • 复兴专业做网站wordpress搬家502
  • 代做毕网站淘宝权重查询
  • 有专做高端折扣女装的网站吗大连最好的做网站的公司
  • 网站需求嘉兴seo关键词优化
  • 自己开发微网站上海成品网站