嗨 我看到下面的代码:为什么在这段代码中使用Action?
void UpdateMessage (string message)
{
Action action =() => txtMessage.Text = message;
this.Invoke (action);
}
为什么使用动作,然后在这里调用操作?为什么不使用txtMessage.Text = message
来替换函数体中的代码?
更新
代码的更全面的版本,在注释中提出,语法高亮转载如下,压痕等
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
new Thread(Work).Start();
}
void Work()
{
Thread.Sleep(5000);
UpdateMessage("My Garden");
}
void UpdateMessage(string message) {
Action action =() => textBox1.Text = message;
this.Invoke(action);
}
}
这是在WinForms的? – 2011-05-10 13:18:04
我认为你所遇到的是我们在业务中称为“坏代码”的东西。它可能是从实际需要间接寻址的系统中的某个位置复制的。但你是100%正确的。这不是。 – Axeman 2011-05-10 13:19:18
@Axeman如何从提供的代码中看出UpdateMessage总是在GUI线程中运行? – 2011-05-10 13:22:46