zoukankan      html  css  js  c++  java
  • 使用await和async异步编程

     class Program
        {
            private static readonly Stopwatch Watch = new Stopwatch();
            static void Main(string[] args)
            {
                Watch.Start();

                Compute();
                GetRandom();

                Watch.Stop();
                Console.ReadKey();
            }

            private static async void Compute()
            {
                var a = await GetSum();//任务开始后,直接继续执行下一步
                Console.WriteLine(Watch.ElapsedMilliseconds + "异步方法完成结果:" + a);//直到调用a时候,如果任务未完成就会等待任务完成。
            }

            private static Task<long> GetSum()
            {

                var random = new Random();
                var length = random.Next(10000, 100000);
                long result = 0;
                var task = new Task<long>(() =>
                {
                    for (int i = 0; i < length; i++)
                    {
                        result += i;
                    };
                    return result;
                });

                task.Start();
                return task;

            }

            private static void GetRandom()
            {
                var random = new Random();
                var length = random.Next(10000, 100000);
                Console.WriteLine(Watch.ElapsedMilliseconds + "普通方法完成结果:" + length);
            }
        }

      

           如图,先开始执行异步方法,结果却是用时较少的普通方法先完成。

  • 相关阅读:
    C语言单链表创建,插入,删除
    Java乔晓松spring构造函数的注入以及null的注入
    sentilib_语料库项目_search模块的实现
    spring入门(6)set方法注入依赖之null的注入
    Java乔晓松使用Filter过滤器清除网页缓存
    漂亮的弹框
    C#判断各种字符串(如手机号)
    视频数字水印
    数据校验
    SVN 常见问题操作总结
  • 原文地址:https://www.cnblogs.com/hepeng/p/6163298.html
Copyright © 2011-2022 走看看