C# 2.0 匿名方法大大簡化了 Windows Forms 異步調用的實現,我們再也不用手工定義異步委托或者包裝類了。例如,在下面的代碼示例中,Form1 有一個按鈕控件和一個列表控件,在按鈕控件的單擊事件裡,我們新建一個線程,在這個線程中向列表控件添加 10 個項目:
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
...
private void button1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(this.ThreadProc);
thread.Start();
}
private void ThreadProc()
{
for (int i = 0; i < 10; i++)
{
this.Invoke((MethodInvoker)delegate
{
this.listBox1.Items.Add("Item " + (i + 1).ToString());
});
}
}
}