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);        }

运行结果:

更多相关文章

  1. C# 多线程--线程池的详细介绍
  2. C#中多线程之Thread类详解
  3. C#线程控制的实例详解
  4. 使用ConcurrentDictionary多线程同步字典集合实例详解
  5. c#中关于多线程创建对象的示例分享
  6. C#多线程之Semaphore的使用详解
  7. C# WinForm跨线程访问控件的图文详解
  8. C++11多线程编程基础入门
  9. C++解决方法:多线程同步经典案例之生产者消费者问题

随机推荐

  1. mysqli_query中的最大查询长度。
  2. Class.forName("com.mysql.jdbc.driver")
  3. MySQL Internal - InnoDB存储引擎(行结构
  4. MySql查询脚本,每月统计活动用户。
  5. php怎么读取MYSQL数据到radio选项
  6. 计算他们自动放入全列的两列
  7. mysql安装后不能重新修改目录文件夹的名
  8. mysql 常用字段和占用 字节数
  9. mysql数据库拷贝到另一个服务器上
  10. 是否会添加不必要的比较以获得结果但是减