Task用法之任务等待wait实例
16lz
2021-01-22
1.Wait 用法
默认情况下,Task 是有线程池中的异步线程执行,是否执行完成,可以通过Task的的属性IsCompleted 来判断,
如果想在子线程工作完成之后,在进行后续主线程工作可以通过调用task.Wait() 来等待线程完成,调用Wait 后,当前线程会被阻塞,直到到子线程完成。
代码示例:
static void Main(string[] args) { Task t = Task.Run(() => { Thread.Sleep(500); Console.WriteLine("Lance"); Thread.Sleep(500); }); Console.WriteLine("t.IsCompleted=" + t.IsCompleted); t.Wait(); Console.WriteLine("t.IsCompleted=" + t.IsCompleted); }
运行结果:
2.Wait 设定等待时间
static void Main(string[] args) { Task t = Task.Run(() => { Thread.Sleep(500); Console.WriteLine("Lance"); Thread.Sleep(500); }); Console.WriteLine("t.IsCompleted=" + t.IsCompleted); bool IsComplate= t.Wait(200); Console.WriteLine("wait 200毫秒后 t.IsCompleted=" + t.IsCompleted); Thread.Sleep(1000); Console.WriteLine("t.IsCompleted=" + t.IsCompleted); }
运行结果:
更多相关文章
- C# 多线程--线程池的详细介绍
- C#中多线程之Thread类详解
- C#线程控制的实例详解
- 使用ConcurrentDictionary多线程同步字典集合实例详解
- c#中关于多线程创建对象的示例分享
- C#多线程之Semaphore的使用详解
- C# WinForm跨线程访问控件的图文详解
- C++11多线程编程基础入门
- C++解决方法:多线程同步经典案例之生产者消费者问题