.NET非同步方法呼叫的例子

iDotNetSpace發表於2010-01-07

這樣寫的好處是TestMethod在同步和非同步執行緒下,都能順利地被呼叫.

MethodInvoker和Action都是.NET 2.0內建的Delegate型別,讓你方法地回撥一個沒有引數的方法,而不用自己去定義新的Delegate.

private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(TestMethod));
t.Start();
}

public void TestMethod()
{
if (this.InvokeRequired)
{
//MethodInvoker handler = new MethodInvoker(TestMethod);
Action handler = new Action(TestMethod);

this.Invoke(handler, null);
}
else
{
this.Text = "Async Invoked.";
MessageBox.Show("Async Invoked");
}
}
public void Calc(int a, int b, int c, int d)
{
var r = a + b + c + d;
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-624592/,如需轉載,請註明出處,否則將追究法律責任。

相關文章