当前位置: 首页 > news >正文

2.1 基于委托的异步编程方法

        基于委托的异步编程模型是 .NET 早期版本中实现异步操作的一种方式,主要通过 BeginInvoke 和 EndInvoke 方法来实现。这种基于委托的异步模式已被 Task 和 async/await 模式取代,但在维护旧代码时仍可能遇到这种模式。

        委托的方法中:Invoke用于同步调用;  而BeginInvoke与EndInvoke用于异步调用。

一、具体介绍:

1.1 异步调用BeginInvoke 方法:
调用格式是:BeginInvoke( 委托的参数,AsyncCallback类型的回调函数,一个object对象),      该回调函数是在委托完成后自动调用的函数。 object对象是任何一种对象,可以传递给委托函数。

        特点如下:
        a. 主线程调用此函数后,立即返回,不等待调用完成
        b.  返回 IAsyncResult 用于监视调用状态. 在EnInvoke中使用该返回值

1.2 EndInvoke 方法:
        用于获取异步调用的结果;调用此方法后,如果操作未完成,会阻塞调用线程直到完成。

        而且:如果委托函数中有exception异常,是在调用EndInvoke时触发这个异常的。即即使委托执行中有异常,如果后面没有调用EndInvoke这个异常不


http://www.mrgr.cn/news/99123.html

相关文章:

  • 2020 年 7 月大学英语四级考试真题(组合卷)——解析版
  • 计算机视觉cv2入门之视频处理
  • 硬件工程师笔记——电子器件汇总大全
  • AI书籍大模型微调-基于亮数据获取垂直数据集
  • 【Rust 精进之路之第11篇-借用·实践】切片 (Slices):安全、高效地引用集合的一部分
  • 车载测试用例开发-如何平衡用例覆盖度和测试效率的方法论
  • Linux学习——TCP
  • 【Flutter】使用LiveKit和Flutter构建实时视频聊天应用
  • LicheeRV Nano 与Ubuntu官方risc-v 镜像混合
  • [OpenGL]使用OpenGL实现基于物理的渲染模型PBR(下)
  • kotlin知识体系(六) : Flow核心概念与与操作符指南
  • (mac)Grafana监控系统之监控Linux的Redis
  • 【Rust 精进之路之第13篇-生命周期·进阶】省略规则与静态生命周期 (`‘static`)
  • 【SpringBoot】99、SpringBoot中整合RabbitMQ实现重试功能
  • Linux 生产者消费者模型
  • (done) 吴恩达版提示词工程 1. 引言 (Base LLM 和 Instruction Tuned LLM)
  • C++:详解命名空间
  • 【Rust 精进之路之第14篇-结构体 Struct】定义、实例化与方法:封装数据与行为
  • 【TeamFlow】4 团队人员管理系统的实现
  • 【Rust 精进之路之第6篇-流程之舞】控制流:`if/else`, `loop`, `while`, `for` 与模式匹配初窥