• 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;
            }
    

      

      

  • 相关阅读:
    获取客户及登录IP(Java)
    js初步
    数组方法
    BOM ;浏览器对象模型
    js事件
    EventListener()
    JS面向对象
    正则表达式
    -CSS盒模型和float
    EventListener()
  • 原文地址:https://www.cnblogs.com/wolfocme110/p/6527934.html
Copyright © 2020-2023  润新知