描述:在线程执行结束后,通过委托来执行下一步的逻辑
C#代码如下:
/// <summary> /// 定义一个带参数的委托 /// </summary> /// <param name="sender"></param> protected delegate void ThreadCallBack(object sender); static void Main(string[] args) { ThreadCallBack _ThreadCallBack = new ThreadCallBack(CallBackTest); //创建一个委托 Thread _Thread = new Thread(ThreadRun); //实例化一个线程 _Thread.Start(_ThreadCallBack); //启动线程并将委托作为参数传入 Thread.Sleep(1000); _ThreadCallBack = new ThreadCallBack(CallBackTest); //创建一个委托 _Thread = new Thread(ThreadRun); //实例化一个线程 _Thread.Start(_ThreadCallBack); //启动线程并将委托作为参数传入 Thread.Sleep(1000); _ThreadCallBack = new ThreadCallBack(CallBackTest); //创建一个委托 _Thread = new Thread(ThreadRun); //实例化一个线程 _Thread.Start(_ThreadCallBack); //启动线程并将委托作为参数传入 } /// <summary> /// 线程执行 /// </summary> /// <param name="sender"></param> static void ThreadRun(object sender) { //添加业务逻辑 //TODO //测试 for (int i = 5; i >= 0; i--) { Console.WriteLine("线程" + Thread.CurrentThread.ManagedThreadId + "等待时间:" + i + "秒"); Thread.Sleep(1000); } (sender as ThreadCallBack)(Thread.CurrentThread.ManagedThreadId); } /// <summary> /// 委托对应的方法 /// </summary> /// <param name="sender"></param> static void CallBackTest(object sender) { Console.WriteLine("线程" + sender.ToString() + "执行结束"); Console.ReadLine(); }