委托同步方法
1、Invoke(...)
delegate string GetName(string name);
//实例化委托
GetName getname = new GetName(GetN);
var invokeName = getname.Invoke("1");
Console.WriteLine(invokeName);
2、直接 委托实例名字()
getname("1");
委托异步调用
//异步回调方法,在异步执行完之后执行这个 方法。参数为IAsyncResult 异步执行的返回值 里面包含了异步执行 AsyncCallback acb = (t) => { Console.WriteLine(t.AsyncState); Console.WriteLine(t.IsCompleted); Console.WriteLine(t.CompletedSynchronously); }; //BeginInvoke前面的参数,是委托的参数, 倒数第二个参数是回调方法 AsyncCallback参数IAsyncResult(注意:IAsyncResult会变成BeginInvoke的返回值), 最后一个参数会赋值给AsyncCallback的参数IAsyncResult里面的状态值 var stat = getname.BeginInvoke("1", acb, "状态值"); Console.WriteLine(stat.IsCompleted+" "+stat.AsyncState); //EndInvoke得参数为BeginInvoke的返回值。 EndInvoke会阻塞主线程 一直等到异步结束之后才主线程才往下走 var endValut = getname.EndInvoke(stat); Console.WriteLine(endValut); Console.ReadKey();