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

    async和await结构

    • 前篇博客异步编程系列(一) 已经介绍了何谓异步编程,这篇主要介绍怎么实现异步编程,主要通过C#5.0引入的async/await来实现。

    BeginInvoke和EndInvoke

    • 在学习async/await结构的异步编程前,先了解一下5.0以前是怎么使用异步
    1. BeginInvoke方法
    • 从当前线程池中获取一个线程运行调用的方法;返回给给调用的线程IasyncResult接口对象,
      包含了异步方法的状态信息,原始线程继续向下执行。
    1. EndInvoke方法
    • 接收BeginInvoke返回的对象;若异步方法仍未执行完毕,当前线程就会停止并等待异步方法的线程执行
      完毕。

    async和await关键字

    • async和await必须成对出现,即在调用异步方法时,使用await关键字等待异步操作完成时,
      同时,在使用await关键字在的方法或匿名方法上加上async关键字以注明该方法内包含异步
      等待语句。

    异步方法

    • 在该方法执行完成前立即返回调用方法,在调用方法继续执行的过程中完成任务

    返回类型

    1. void
    • 单纯调用方法执行异步方法

    1. Task
    • 调用方法执行异步方法,用Task对象接收,可以查看和改变异步方法的状态

    1. Task< T >
    • 调用方法执行异步方法,并从中获取一个T类型的返回值


    • 异步方法可以返回Task,Task< T >和void,但在大多数情况下,都返回Task或者Task< T >,
      只有必要时才返回void。因为Task和Task< T >是异步操作,可以把结果传给await操作,
      而返回值为void的方法,不能做到,也不能检查到异步方法的状态。void最常用在事件句柄中,
      例如winform中button按钮就可以改成异步操作。

  • 相关阅读:
    5.6移植Madplay到开发板
    5.4.Makefile
    5.3交叉工具链使用
    5.2嵌入式linux程序编译与调试
    5.1Minicom 通信配置-linux环境
    7.点亮led的操作
    6、异常向量表的学习---设置SVC模式
    4.协处理器访问指令
    3.Arm机器码
    android RelativeLayout控件或view实现叠加效果
  • 原文地址:https://www.cnblogs.com/nxhdw/p/6253863.html
Copyright © 2011-2022 走看看