winform异步加载数据到界面

做一个学习记录。

有两个需求:

1.点击按钮,异步加载数据,不卡顿UI。

2.把获取的数据加载到gridview上面。

对于需求1,2,代码如下:

     public delegate void ShowDatatableDelegate(DataTable dt);
     private async void button1_Click(object sender, EventArgs e)
        {

            //way1.ok
            Thread t = new Thread(ShowDatatable);
            t.IsBackground = true;
            t.Start();

            ////way2.ok.in .net 4.5
            //await Task.Run(() => ShowDatatable());
        }
      /// <summary>
     /// 如果InitDt放在BindDt之中去实现,同样会造成UI卡顿。因为Invoke中的委托方法会阻塞UI线程
     /// </summary>
     private void ShowDatatable()
        {
            DataTable dt = InitDt();//耗时操作
            //this.BeginInvoke(new     ShowDatatableDelegate(BindDt),new object[]{dt});
            this.Invoke(new ShowDatatableDelegate(BindDt), new object[] {dt});
        }
     private void BindDt(DataTable dt)
        {
            this.dataGridView1.DataSource = dt;
        }
时间: 2024-10-08 06:28:00

winform异步加载数据到界面的相关文章

iScroll.js 向上滑动异步加载数据回弹问题

iScroll是一款用于移动设备web开发的一款插件.像缩放.下拉刷新.滑动切换等移动应用上常见的一些效果都可以轻松实现. 现在最新版本是5.X,官网这里:http://iscrolljs.com/ 下面是按照官网给的Demo,写的一个异步加载数据实例: 1 <title>iScroll demo: click</title> 2 <script src="~/Scripts/iscroll5/jquery-1.10.2.js"></scrip

SpringMVC+Jquery -页面异步加载数据

背景: 做项目时涉及到页面,当我打算在controller中传一个list到页面,然后通过<c:foreach>循环遍历出来时,同事说:你这样每次都要刷新,这都是几百年前使用的技术了.你用post实现异步加载数据.然后就...... ResultUtil.java 工具类: package com.sgcc.uds.fs.config.web.util; import java.util.HashMap; import java.util.Map; import net.sf.json.JSO

jQuery异步加载数据添加事件

几个月前在一个项目中涉及到树形栏,然后看了很多插件,觉得有点麻烦,于是自己写了一个,写着写着就出问题了.当时项目是通过树形栏进行权限控制的,管理员可以对从数据库去的数据动态生成树形栏进行增删改查操作,可是用$(".XX").click();方法是不行的.1.之前用的是jq1.4.3 ,jq1.7一下都可以使用live()方法,来实现该功能 $('#div').live('click',function(){ //do stuff }); 但是live方法也有不支持的事件,例如:togg

Android利用Volley异步加载数据完整详细示例(二)

MainActivity如下: package cc.y; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.util.LruCache; import android.widget.ImageView;

Android利用Volley异步加载数据完整详细示例(一)

MainActivity如下: package cc.cn; import java.util.HashMap; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.os.Bundle; import com.android.volley.AuthFailureError; import com.android.volley.RequestQ

淘宝购物车页面 智能搜索框Ajax异步加载数据

如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区非常的活跃,许多朋友都在不同地方分享了很多优秀的插件.我在相关的网站上找过想实现类似功能的插件,但是没有找到.于是乎,自己动手丰衣足食.自己来搭建智能搜索框下拉列表.当然,如果有类似功能并且常维护Bug的插件,望留言交流. 源码地址: 淘宝购物车页面--PC端和移动端项目实战 首先需要先给大家打一根

Android-搭建简单服务端+ListView异步加载数据

Android-搭建简单服务端+ListView异步加载数据 2014年5月6日 本篇博文带给大家的是教大家如何在MyEclipse中搭建一个服务端,并通过手机端与其通信,异步加载数据. 笔者使用的是MyEclipse,各位也可以直接用Eclipse创建Java Web项目,谷歌提供的ADT Bundle是不能创建Web项目,读者可以下载Eclipse For JaveEE Developer这个IDE. 下面来介绍如何在MyEclipse创建一个Web项目,并部署到Tomcat当中,关于Tom

Loader异步加载数据

在android3.0开始,新增了Loader.  Loader加载数据的方式是异步的.Loader的特点: 1.适合于activity和fragment 2.提供了异步加载数据机制 3.监控数据源,当数据源发生改变时,会传递新结果 4.自动重连到最后一个数据加载器游标,不需要重新查询数据 使用情况:对数据源监控,比如contentProvider.     CursorLoader是AsyncTaskLoader的子类,AsyncTaskLoader会提供AsynTask去操作.故不会阻塞UI

iOS中异步加载数据效率更高

在开发中有得时候虽然也能从服务器返回来数据,但是我们要根据实际情况,加快数据的显示,所以我们使用异步加载数据. 下面我们看一下如何异步加载数据 dispatch_async(dispatch_get_global_queue(0, 0), ^{ //下载数据(这里写的是使用AFNetWorking请求的数据) dispatch_async(dispatch_get_main_queue(), ^{ //更新视图(这里写的是,要把数据显示出来) }); });