zoukankan      html  css  js  c++  java
  • async 和 await

    Task的出现是为了使多线程编程变得简单,Task和Thread还不是一回事,Task由TaskManager管理,一个Task会执行在一个Thread上,但是如果没有足够的Thread,TaskManager会暂时挂起这个Task,直到有足够的Thread资源为止。Task的另外一个好处是TaskManager会把执行这些Task的Thread自动的分配在不同的Core上,就是所谓的并行编程,拿我的i7来说,有4个物理Core。如果有4个Task,那么.net TaskManager会在4个Core上建立4个独立的Thread,然后把4个Task放到这4个Thread运行

    async修饰一个异步方法,await 运算符应用于一个异步方法的任务挂起方法的执行,直到等待任务完成。在一个方法中,按过程执行代码,异步方法放的位置先后考虑。

     取消异步操作

    CancellationToken 和 CancellationTokenSource 这两个类

    CancellationTokenSource source = new CancellationTokenSource();
              CancellationToken token = source.Token; 
    Thread.Sleep(5000);
    source.cancle();
    public static async Task ExecuteAsync(CancellationTokentoken) { if (token.IsCancellationRequested) { return; } await Task.Run(() => CircleOutput(token), token); }

    异步编程框架都是基于Task,前段时间出现的Reactive Extention(Rx)也是如此

  • 相关阅读:
    lanya
    Apple watch ,小米微信通知
    jenkins grunt 自动构建流程
    刷机步骤
    ipad忘记了锁屏密码,已经越狱了
    ar
    如何在ubuntu中安装php
    阿里云
    docker swarm 集群及可视化界面的安装及配置
    https://github.com/gaoyangxiaozhu/DockerVI
  • 原文地址:https://www.cnblogs.com/llsg/p/11399994.html
Copyright © 2011-2022 走看看