簡體   English   中英

如何為后台工作人員傳遞功能?

[英]How do I pass a function for background worker?

我想創建一個函數,以便每次當我需要在backgroundWorker中運行該函數時都可以將該函數傳遞給調用。 像這樣。

void RunInBackgroundWorker(Func<object, DoWorkEventArgs, bool> do_work)
{
    BackgroundWorker worker = new BackgroundWorker();
    worker.DoWork += do_work;
    worker.ProgressChanged += Worker_ProgressChanged;
    worker.WorkerReportsProgress = true;
    worker.RunWorkerCompleted += Worker_RunWorkerCompleted;
    worker.RunWorkerAsync();
}

但是Visual Studio抱怨說它不能將類型'System.Func'隱式轉換為'System.ComponentModel.DoWorkEventHandler'

這樣可以做到嗎? 如何正確傳遞函數?

worker.DoWork += (s, e) => do_work(s, e);

同樣,這與WPF無關。

我實際上解決了。 我沒有傳遞功能(Func do_work),而是傳遞了(DoWorkEventHandler do_work),它起作用了!

暫無
暫無

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

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