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-处理数据需要一些时间";
            }
        }
    }
  • 相关阅读:
    UVa 12174 (滑动窗口) Shuffle
    UVa 1607 (二分) Gates
    CodeForces ZeptoLab Code Rush 2015
    HDU 1525 (博弈) Euclid's Game
    HDU 2147 (博弈) kiki's game
    UVa 11093 Just Finish it up
    UVa 10954 (Huffman 优先队列) Add All
    CodeForces Round #298 Div.2
    UVa 12627 (递归 计数 找规律) Erratic Expansion
    UVa 714 (二分) Copying Books
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/13470024.html
Copyright © 2011-2022 走看看