狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#Winform窗體界面”假死”后臺線程阻塞解決辦法–BeginInvoke

admin
2021年1月29日 16:10 本文熱度 3092

這個方法可以用在任何后臺任務耗時較長,造成界面“假死”界面控件不更新的情況。
比如要要執行的數據庫操作是幾十萬條的update語句,如果在click事件里阻塞或者做Thread.Sleep或一個耗時很長的操作,窗口就會無響應點不動了。故需要用this.BeginInvoke方法來異步執行UI線程的操作,更新界面顯示。

//導入按鈕點擊事件
private void btn_import_Click(object sender,EventArgs e)
{
    //1.綁定需要執行的操作方法
    var act = new Action(Import);
    act.BeginInvoke(ar => act.EndInvoke(ar), null);  //參數null可以作為回調函數的返回參數
}
 
//回調函數(此處為無返回值函數,也可自行改寫)
private void Import()
{
    this.btn_import.Enable = false;
    this.btn_import.Text = "正在導入...";
    DateTime starttime = System.DateTime.now;
    try
    {
        //2.執行導入數據庫操作
        //如:sqlhelper.ExecuteNonQuerySqlByTransation(sqlstr);
 
        //3.執行異步操作
        this.BeginInvoke(new Action(() =>
        {
            DateTime endtime = System.DateTime.now;
            TimeSpan = ts = endtime.Subtract(starttime);
            this.txt_result.Text = "導入了 " + successcount + " 條記錄。";
            this.lb_time.Text = "一共消耗了 " + (int)ts.TotalMinutes + " 分鐘, " + ts.Seconds + " 秒。";
            this.btn_import.Enable = true;
            this.btn_import.Text = "點擊開始導入";
        }));
    }
    catch(Exception e)
    { }

該文章在 2021/1/29 16:12:10 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved