亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# BackgroundWorker 后臺異步組件

admin
2024年1月13日 17:10 本文熱度 1755

摘要

BackgroundWorker 是一個重要的 Windows 應(yīng)用程序開發(fā)組件,它允許你在后臺執(zhí)行耗時的操作,而不會阻塞應(yīng)用程序的主 UI 線程。通過使用 BackgroundWorker,你可以使你的應(yīng)用程序更加靈活,更加高效。

BackgroundWorker 組件是通過委托和異步編程技術(shù)實現(xiàn)的。你可以在組件的主類中定義一個輔助方法,該方法會在后臺執(zhí)行,同時不會阻塞調(diào)用線程。這些輔助方法是異步的,因此它們不會阻塞 UI 線程。相反,調(diào)用線程可以繼續(xù)執(zhí)行其他任務(wù),直到異步方法完成。

一旦你定義了一個輔助方法,你可以使用 RunWorkerAsync 方法將其作為異步任務(wù)提交給 BackgroundWorker。在調(diào)用該方法時,BackgroundWorker 將創(chuàng)建一個線程池線程來執(zhí)行輔助方法。在輔助方法運行時,調(diào)用線程將繼續(xù)執(zhí)行其他任務(wù),而不會阻塞。

當(dāng)輔助方法完成時,BackgroundWorker 將引發(fā)一個事件。這個事件是可選的,但它可以包含有關(guān)輔助方法運行的信息,例如耗時,狀態(tài)和錯誤消息。如果你不需要事件,你可以使用 RunWorkerCompleted 方法立即結(jié)束任務(wù)。

BackgroundWorker 是一個非常有用的組件,它可以幫助你編寫高效的異步代碼。它使你能夠在后臺執(zhí)行耗時的操作,而不會阻塞 UI 線程,這對于實現(xiàn)響應(yīng)式和流暢的應(yīng)用程序非常重要。無論你是編寫 Web 應(yīng)用程序,移動應(yīng)用程序還是桌面應(yīng)用程序,BackgroundWorker 都是一個值得使用的工具。

正文


屬性



CancellationPending獲取一個值,指示應(yīng)用程序是否已請求取消后臺操作。
CanRaiseEvents獲取一個指示組件是否可以引發(fā)事件的值。
Events獲取附加到此 Component 的事件處理程序的列表。
IsBusy獲取一個值,指示 BackgroundWorker 是否正在運行異步操作。
WorkerReportsProgress獲取或設(shè)置一個值,該值指示 BackgroundWorker 能否報告進度更新。
WorkerSupportsCancellation獲取或設(shè)置一個值,該值指示 BackgroundWorker 是否支持異步取消。

方法



CancelAsync()請求取消掛起的后臺操作。
OnDoWork(DoWorkEventArgs)引發(fā) DoWork 事件。
OnProgressChanged(ProgressChangedEventArgs)引發(fā) ProgressChanged 事件。
OnRunWorkerCompleted(RunWorkerCompletedEventArgs)引發(fā) RunWorkerCompleted 事件。
ReportProgress(Int32)引發(fā) ProgressChanged 事件。
ReportProgress(Int32, Object)引發(fā) ProgressChanged 事件。
RunWorkerAsync()開始執(zhí)行后臺操作。
RunWorkerAsync(Object)開始執(zhí)行后臺操作。

實例化

//實例化BackgroundWorkerprivate BackgroundWorker bgWorker = new BackgroundWorker();


初使化

private void FrmMain_Load(object sender, EventArgs e)
{
    pbar.Maximum = 1000;
    //是否報告處理進度
    bgWorker.WorkerReportsProgress = true;
    //是否允許取消操作
    bgWorker.WorkerSupportsCancellation = true;
    //執(zhí)行三個事件,DoWork事件,ProgressChanged事件以及RunWorkedCompleted事件
    bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
    bgWorker.ProgressChanged += new ProgressChangedEventHandler(bgWorker_ProgessChanged);
    bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_WorkerCompleted);
}


事件

public void bgWorker_DoWork(object sender, DoWorkEventArgs e){    //設(shè)置進度條Maximum為1000,循環(huán)1000次    for (int i = 0; i <= 1000; i++)    {        //獲取是否取消操作        if (bgWorker.CancellationPending)        {            e.Cancel = true;            return;        }        else        {            //報告進度            bgWorker.ReportProgress(i, "Working");            System.Threading.Thread.Sleep(10);        }    }}
public void bgWorker_ProgessChanged(object sender, ProgressChangedEventArgs e){    //e.ProgressPercentage是獲取任務(wù)int類型    pbar.Value = e.ProgressPercentage;    lblTitle.Text = "處理進度:" + Convert.ToString(e.ProgressPercentage);}
public void bgWorker_WorkerCompleted(object sender, RunWorkerCompletedEventArgs e){    //若沒有完全執(zhí)行結(jié)束,則報錯    if (e.Error != null)    {        MessageBox.Show(e.Error.ToString());        return;    }    if (!e.Cancelled)        this.lblTitle.Text = "處理完畢!";    else        this.lblTitle.Text = "處理終止!";}
//開始private void btnStart_Click(object sender, EventArgs e){    //正忙時不允許繼續(xù)操作    if (bgWorker.IsBusy)        return;    //異步開啟    bgWorker.RunWorkerAsync("start");}
//停止private void btnStop_Click(object sender, EventArgs e){    bgWorker.CancelAsync();}


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