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

      

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

  • 相关阅读:
    最新版-Python和Java实现Aes相互加解密
    tasker 实现短信监听和转发 解决短信验证码登录问题
    某宁 价格爬取 python
    python 获取 某东商品评论数
    xpath 使用
    frida hook 重载函数的几种写法
    Python 爬虫遇到形如 &#x5c0f;&#x8bf4; 的编码如何转换为中文?
    python 使用 pymysql 存,改dic类型数据
    Excel甘特图制作
    关于sunlike ERP的问题解决集
  • 原文地址:https://www.cnblogs.com/hepeng/p/6163298.html
Copyright © 2011-2022 走看看