zoukankan      html  css  js  c++  java
  • C#

    介绍

      Async、Await是net4.x新增的异步编程方式,其目的是为了简化异步程序编写

      Async方式,使用Async标记Async1为异步方法,用Await标记GetRequestStreamAsync表示方法内需要耗时的操作。主线程碰到await时会立即返回,继续以非阻塞形式执行主线程下面的逻辑。当await耗时操作完成时,继续执行Async1下面的逻辑

    static async void Async1()
    {
        HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://cnblogs.com/");
        await myReq.GetRequestStreamAsync();
        //to do
    }
    

      

    async task 和 async void 两种方法的区别 

      async task  调用的时候使用await 

      async void  调用的时候不需要使用await

      虽然同样是异步调用方法,后者叫做“伪异步”更容易理解。

      第一种方法,因为Task使用自动管理的线程池,可能新建了一个线程去执行异步方法,等待完成。

      第二种方法,其实还是使用当前方法的线程(比如UI线程)去执行,只不过遇到async void 方法内部的await Task再进行异步。

      一般情况下,异步方法尽量使用async task,而async void是一中“伪异步”的包装,比如一些事件调用的后台方法,无法直接使用Task的情况之下,使用async void包装真正的异步方法。

  • 相关阅读:
    Redis的高级应用——数据安全
    [转]C#多线程和线程池
    详解从面向接口编程到依赖注入
    Java Servlet 配置
    Java Servlet 3.0 新特性
    [转]C#中的委托和事件
    iReport5.6.0使用说明
    Visual Studio 2015 官方下载及密钥
    Java Swing 托盘闪烁Demo实例
    Win7 利用批处理文件结束进程
  • 原文地址:https://www.cnblogs.com/gygtech/p/14232930.html
Copyright © 2011-2022 走看看