簡體   English   中英

背景工作者

[英]Background worker

如果我有一組操作,我想基於某個條件在后台工作程序中運行,例如,我有10個條件

if(a)
    BackgroundWorker doA = new backgroundworker()
if(b) 
    BackgroundWorker doB = new backgroundworker()
if(c) 
    BackgroundWorker doC = new backgroundworker()
if(d) 
    BackgroundWorker doD = new backgroundworker()
...
...

每個后台工作人員都需要一個dowork,runworkercompleted等....無論如何都要避免這樣做,這樣它會使代碼變得不那么混亂/污染,因為其中一些方法可能會很大?

謝謝

您應該使用System.Threading.Tasks命名空間中的Task ,它非常簡單易用。

要啟動任務,您只需使用: Task.Factory.StartNew()傳遞方法或lambda表達式作為參數。 你得到一個Task對象,你可以用它來繼續,得到結果,等等。

您可以考慮使用單個backgroundworker並將參數傳遞給它。在DoWork方法中使用此參數可以確定要使用的代碼塊。檢查此線程

向背景工作者發送參數?

為什么不將需要評估的對象傳遞給BackgroundWorker,而BackgroundWorker可以使用它來確定要做什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM