微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Task用法之任务等待wait实例

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

运行结果:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐