如何为后台工作人员传递函数



我想创建一个函数,这样每当我需要在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_works(,它就工作了!

最新更新