zoukankan      html  css  js  c++  java
  • C#异步编程

    1、什么是异步编程

     异步方法是只在执行当前方法的同时,可以异步的去调用其他方法(异步方法)不会堵塞当前线程!

    2、如何使用异步方法用 async 修饰 通常配合await运算符和 Task 异步任务一起使用

     要注意的是 

     在调用 async 标识的异步方法时 如果没有 await Task的方法 就同步进行

    如果使用包含一个await的云苏菲 必须标注异步方法 async  

    如果没有用 await 标识  

     这样可以判断出 先将主方法同时的执行后太才会执行task里面的方法

    3 Task 分为两种

      1 Task执行一个异步方法

      2 Task<TRsult> 执行 可以执行返回值的异步操作

    4. 异步方法的返回类型必须为 void、Task、Task<TResult> 中的其中一种

    1) void,表示无返回值,不关心异步方法执行后的结果,一般用于仅仅执行某一项任务,但是不关心结果的场景。
    2) Task,表示异步方法将返回一个 Task 对象,该对象通常用于判断异步任务是否已经完成,可以使用 taskObj.Wait() 方法等待,或者 taskObj.IsCompleted 判断。
    3) Task<TResult>,表示异步方法将返回一个 Task<TResult> 对象,该对象的 Result 属性则是异步方法的执行结果,调用该属性时将阻塞当前线程(异步方法未执行完成时)。

    归纳一下:void 不关心结果Task 只关心是否执行完成Task<TResult> 不止关心是否执行完成,还要获取执行结果。

    task<result>

     1) 以上代码 task.Result 会阻塞当前线程,

    如果调用多个TASK呢

     会将task里面的任务全部执行

    如何取消异步操作

    创建

       CancellationTokenSource source = new CancellationTokenSource();
        Task<string> task = CommandBuySalt_CancelBuySalt(source.Token);


  • 相关阅读:
    一个关于STL list使用 小示例
    c++几个通用工具
    修改pc机的mac地址 以及 mac地址的组成
    win7 下 arp 绑定mac和Ip
    wireshark如何抓取别人电脑的数据包
    WPA破解原理简要——无线网络破解续
    Apache配置代理服务器的方法(2)
    Apache配置代理服务器的方法(1)
    在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问
    Apache服务器配置技巧
  • 原文地址:https://www.cnblogs.com/wbg522963969/p/12497053.html
Copyright © 2011-2022 走看看