[英]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.