在BackgroundWorker中插入一些事件

本文关键字:事件 插入 BackgroundWorker | 更新日期: 2023-09-27 18:25:41

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

我的代码我有这个BackgroundWorker。DoWorker在秒强制执行睡眠,而RunWorkerCompleted只执行任何代码。是否可以像一样在一行中完成所有功能,而不是定义一个函数

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

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

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

在BackgroundWorker中插入一些事件

您混淆了inlininglambda expressions。Inlining是用方法的主体代替对方法的调用,例如:

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。