分配系统.操作到后台工作器

本文关键字:工作 后台 系统 操作 分配 | 更新日期: 2023-09-27 18:18:56

我写了一小段代码,将Action作为委托分配给BackGroundWorker

public BackgroundWorker GetBackgroundWorker(System.Action doWork)
{
   BackgroundWorker bwk= new BackgroundWorker();
   bwk.DoWork += (sender, args) => { args.Result = doWork; };
   return bwk;
}
BackgroundWorker wk = GetBackgroundWorker(MY_Delegate);
wk.RunWorkerAsync();
public void MY_Delegate()
{
  //DO Stuff
}

长话短说,我想知道为什么方法MY_Delegate在我用RunWorkerAsync调用解雇工人后从未进入。
也许我的"=>"周围的赋值语法很糟糕。
无论如何,我欢迎任何有效的方法使其工作

分配系统.操作到后台工作器

public BackgroundWorker GetBackgroundWorker(System.Action doWork)
{
   BackgroundWorker bwk= new BackgroundWorker();
   bwk.DoWork += (sender, args) => { doWork(); };
   return bw;
}

将doWork分配给参数。结果将不调用DoWork方法。

作为旁注:方法和变量的命名表明你没有完全理解委托、事件和lambda表达式。