zoukankan      html  css  js  c++  java
  • GetAwaiter和GetResult(2)

    namespace ConsoleApp1
    {
        class Program
        {
            /// 示范 GetAwaiter()
            /// tip: 关键字: wait系列, await, result, getResult 要等, 其他都不用        
            static void Main(string[] args)
            {
                var task = RunAsync_1();
                //OnCompleted:对象停止等待 ,异步任务完成去执行下面。。。的task.Result。
                task.GetAwaiter().OnCompleted(() =>
                {
                    Console.WriteLine("。。。。。。"+task.Result);
                });
    
                //这个task.GetAwaiter().GetResult()等价于上面OnCompleted+task.Wait()
                //task.Wait()这个标志是要等到异步程序执行完再去执行其他的
                //Console.WriteLine(task.GetAwaiter().GetResult());
    
                task.Wait(); //要等
                Console.WriteLine("a-我会先跑");//这里有两个a和b, 当代码从上面走到这两行的时候直接运行,但是呢,这两行下面是task.Wait().就是要等待了。
                Console.WriteLine("b我会先跑");//
                //task.Wait(); //要等
                Console.WriteLine("1-我会先跑");
                //task.Wait(); //要等  Wait():等待系统线程化任务完成执行的任务,这个就是要等待异步线程走完结束,才会继续下去
    
                Console.WriteLine("上面RunAsync_1执行完了。。。。。。。。");
                var result = RunAsync_2().GetAwaiter().GetResult();  //要等  这个GetResult本身就是要等待异步执行完毕,再会去执行其他的东西
                Console.WriteLine(result);
                Console.WriteLine("4-这次不会先跑了");
                Console.Read();
            }
    
            static async Task<string> RunAsync_1()
            {
                await Task.Delay(10000);  //要等
                return "2-处理数据需要一些时间";
            }
    
            static async Task<string> RunAsync_2()
            {
                await Task.Delay(1000);  //要等
                return "3-处理数据需要一些时间";
            }
        }
    }
  • 相关阅读:
    2017/4/14 afternoon
    2017/4/14 morning补
    2017/4/13 afternoon
    2017/4/13 morning
    2017/4/12 afternoon
    2017/4/12 morning
    4.17上午
    4.14上午
    4.13下午
    4.13上午
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/13470024.html
Copyright © 2011-2022 走看看