嗨 我看到下面的代碼:爲什麼在這段代碼中使用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