繁体   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