首页 > 编程语言 >异步编程等待异步调用结束的方法

异步编程等待异步调用结束的方法

时间:2022-11-06 16:36:12浏览次数:32  
标签:异步 调用 方法 编程 BeginInvoke IAsyncResult 等待

异步编程中经常使用的委托为 Action 和 Func.

异步方法的调用使用BeginInvoke实现, 等待异步方法结束的几种方法:

1. 调用 EndInvoke, 一直阻塞到调用完成。

2. 通过BeginInvoke 的返回值IAsyncResult对象实现。

IAsyncResult.AsyncWaitHandle.WaitOne(); //一直等待任务完成

IAsyncResult.AsyncWaitHandle.WaitOne(1000); //最多等待1000ms,否则直接进入下一行。

3. 轮询BeginInvoke 的返回值IAsyncResult对象。

IAsyncResult.IsCompleted 确定异步调用是否完成,然后调用EndInvoke.

这种处理方法可以在轮询期间给出相关的提示信息,比如下载文件的下载进度等

标签:异步,调用,方法,编程,BeginInvoke,IAsyncResult,等待
From: https://www.cnblogs.com/lyyd/p/16862922.html

相关文章

  • 编写一个Httpclient调用第三方接口
    什么是httpClientHttpClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版......
  • 《Unix/Linux系统编程》第十周学习笔记
    《Unix/Linux系统编程》第十周学习笔记块设备I/O和缓冲区管理解释块设备I/O的原理和I/O缓冲的优点I/O缓冲区:内核中的一系列NBUF缓冲区用作缓冲区缓存。每个缓冲区用一......
  • 学习ASP.NET Core Blazor编程系列十——路由(上)
    学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习ASP.NETCoreBlazor编程系列二——第一个Blazor应......
  • Java8新特性:函数式编程
    1.概述函数式编程学习目的:能够看懂公司里的代码大数据量下处理集合效率更高代码可读性高消灭嵌套地狱函数式编程思想:面向对象思想需要关注用什么对象完成什么事......
  • 异步处理-梨视频爬取
    importrequestsfromlxmlimporthtmlimportrandomimportosfrommultiprocessing.dummyimportPoolheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;W......
  • C++PrimerPlus中文第六版第2章编程练习答案
    1、#include<iostream>usingnamespacestd;intmain(){cout<<"Name:Luoxiao,\nAddress:XidianUniversity,Xi'an,ShaanxiProvince,China.\n";retu......
  • Pytorch中模型调用
    注意:RNN、LSTM的batch_first参数,对于不同的网络层,输入的维度虽然不同,但是通常输入的第一个维度都是batch_size,比如torch.nn.Linear的输入(batch_size,in_features),torch.nn......
  • Java函数式编程:三、流与函数式编程
    本文是Java函数式编程的最后一篇,承接上文:Java函数式编程:一、函数式接口,lambda表达式和方法引用Java函数式编程:二、高阶函数,闭包,函数组合以及柯里化前面都是概念和铺垫,主......
  • 微服务Spring Boot 整合Redis 基于Redis的Stream 消息队列 实现异步秒杀下单
    文章目录​​一、什么是Redis消息队列?​​​​二、Redis消息队列--基于RedisList实现消息队列​​​​三、Redis消息队列--基于Pubsub的消息队列​​​​四、......
  • 实验三 函数应用编程
    1.任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_space......