2

我不确定,但是当您在一行中完成所有操作时,它是否称为内联?

我的代码有这个 BackgroundWorker。DoWorker 强制执行 on sec 睡眠,而 RunWorkerCompleted 只是不执行任何代码。是否有可能代替定义一个函数在一行中完成所有操作

.DoWork += ((sender, arg) => { ... }); 

.RunWorkerCompleted += ((sender, arg...

什么是正确的语法,这叫什么?当你手头有一个简单的任务时,让事情保持简单是件好事 :-)

4

1 回答 1

1

inlininglambda expressions. 内联是用它的主体替换方法的调用,例如:

int TimesTwo(int x) 
{
   return x * 2;
}

//before inlining:
int a = TimesTwo(6) + TimesTwo(7);
//after inlining:
int a = 6 * 2 + 7 * 2;

这是一种避免方法调用开销的编译器优化技术。

对于您的BackgroundWorker示例,正​​确的语法是:

 BackgroundWorker worker = new BackgroundWorker();
 worker.DoWork += (sender, e) => RunMyMethod();
 //or
 worker.DoWork += (sender, e) => { RunMyMethod(); }

有关详细信息,请参阅MSDN

于 2013-07-31T09:46:53.907 回答