描述:在线程执行结束后,通过委托来执行下一步的逻辑
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();
}