Как передать функцию для фонового работника? - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу создать функцию, чтобы каждый раз я мог передать функцию для вызова, когда мне нужно запустить функцию в 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'

Возможно ли сделать это таким образом? Как правильно передать функцию в?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Я действительно решил это. Вместо передачи функции (Func do_work) я передаю (DoWorkEventHandler do_work), и она работает!

0 голосов
/ 07 ноября 2018
worker.DoWork += (s, e) => do_work(s, e);

Также это не имеет ничего общего с WPF.

...