.NET异步方法调用的例子

这样写的好处是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;
}
posted @ 2010-01-06 22:16  与时俱进  阅读(483)  评论(0编辑  收藏  举报
友情链接:同里老宅院民居客栈