线程结束后调用其他函数
private static void Main(string[] args) { //通过回调, 检测线程结束 Func<int, string, int> a = Test; //倒数第二个参数为会调函数,线程结束后会调用此函数,最后个参数可以传递给回调函数数据 a.BeginInvoke(100, "maning", OnCallBack, a); Console.ReadKey(); } private static void OnCallBack(IAsyncResult ar) { Func<int, string, int> b = ar.AsyncState as Func<int, string, int>; int res = b.EndInvoke(ar); Console.WriteLine("子线程结束" + " 回调中取得参数" + res); } private static int Test(int i, string name) { Console.WriteLine("Test" + i + " " + name); //当前线程暂停100ms Thread.Sleep(100); return 100; }
OnCallBack方法的参数是固定的,(IAsyncResult ar)
ar.AsyncState传递过来的数据,也就是main方法中的 Func<int, string, int> a