zoukankan      html  css  js  c++  java
  • c#异步学习笔记

    如下代码。只需要异步的处理一个数据,不需要等处理完成后,进行后继的操作。可以不用Async来修饰方法

    static void Main(string[] args)
    {
      Test();
      Console.WriteLine("Main End");
      Console.Read();
    }
    
    
    static void Test()
    {
      var task1 = Task.Run(() =>
      {
        Task.Delay(10000);
        Console.WriteLine("task1");
      });
      var task2 = Task.Run(() =>
      {
        Task.Delay(20000);
        Console.WriteLine("task2");
      });
    }

    但是如果期望在方法完成后,要执行一些操作,可以用await关键词,如果要用await关键词,就必须使用async来修饰方法。

    static void Main(string[] args)
    {
      Test();
      Console.WriteLine("Main End");
      Console.Read();
    }
    
    
    static async void Test()
    {
      var task1 = Task.Run(() =>
      {
        Thread.Sleep(100);
        Console.WriteLine("task1");
      });
      var task2 = Task.Run(() =>
      {
        Thread.Sleep(500);
        Console.WriteLine("task2");
      });
    
      await Task.WhenAny(new Task[] { task1, task2 });
      Console.WriteLine("有一个任务完成");
      await Task.WhenAll(new Task[] { task1, task2 });
      Console.WriteLine("全部完成!");
    }

    异步相关内容:

    •   异常处理
    •   在调用方法中同步等待任务
    •   在异步方法中异步等待任务
    •   Task.Delay()暂停执行

    内容链接:http://www.cnblogs.com/liqingwen/p/5866241.html

  • 相关阅读:
    php读取大文件如日志文件
    大型站点高并发架构技术
    Nginx配置文件nginx.conf详细说明文档
    关于PHP高并发抢购系统设计
    Mysql常用的锁机制
    Sping基础
    Reliable Master持续集成环境搭建Centos
    Win7 macaca自动化环境搭建 PC篇
    安卓appium无线调试
    Selenium PageFactory使用
  • 原文地址:https://www.cnblogs.com/blueGao/p/10287910.html
Copyright © 2011-2022 走看看