首页 > 其他分享 >基于任务的异步模式和基于时间/回调的异步模式

基于任务的异步模式和基于时间/回调的异步模式

时间:2024-03-29 12:12:08浏览次数:18  
标签:异步 基于 await 模式 时间 回调

问题场景描述

web api:需要向另一个服务器发送http请求,等待服务器的回调结果,若指定时间内比如10分钟没有收到回调则返回失败,否则处理回调返回。

典型的基于时间/回调的异步模式,和经常使用的await 模式不同,await是基于任务的异步模式,任务完成返回。而前面这种应用场景依赖回调处理结果或时间,不是简单地等待一段时间,等待的时间还要根据回调进行后续操作。

C#实现基于时间/回调的异步模式

1.TaskCompletionSource<T>

它允许你手动控制一个 Task<T> 的完成状态。这在你需要将基于回调的异步模式转换为基于任务的异步模式时特别有用。这样,你就可以使用 async/await 语法,而不是处理更复杂的回调或事件模式。

 

2.事件/委托

 

标签:异步,基于,await,模式,时间,回调
From: https://www.cnblogs.com/mbaymax/p/18103543

相关文章

  • 关于工厂模式的思考
    常说的几种工厂模式就是如下几种:简单工厂模式工厂方法模式抽象工厂模式PreWriting标题开玩笑,我可能喜欢开玩笑,大家都乐呵……其中,在23中设计模式中,简单工厂并不在其列,但是常常提起是因为它的思想也是“解耦”,并不能因为它不在23种设计模式中就不算它是设计模式,这种说法在......
  • kube-proxy模式 iptables和ipvs对比
    kube-proxy的ipvs模式和iptables模式在Kubernetes集群中各有优劣,主要体现在性能、功能和支持的协议方面。1.性能:IPVS模式:由于IPVS是专门为负载均衡设计的,它在性能方面通常优于iptables。IPVS使用基于哈希的负载均衡算法,能够快速处理大量的并发连接,其连接处理的名义计算复杂度......
  • 【毕业设计】基于springboot的大学生综合素质测评管理系统
    前言【毕业设计】大学生综测管理系统......
  • 基于DBO-CNN-BiLSTM数据回归预测(多输入单输出),蜣螂优化算法优化CNN-BiLSTM-附代码
    基于DBO-CNN-BiLSTM的数据回归预测是一种综合利用了深度学习中的多种技术的方法,包括卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)和注意力机制(Attention)。蜣螂优化算法用于优化CNN-BiLSTM模型的参数。以下是基于DBO-CNN-BiLSTM的数据回归预测的原理:CNN(卷积神经网络):CNN是一......
  • 基于ssm小型企业办公自动化系统论文
    摘要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用小型企业办公自动化系统可......
  • 恒温恒湿空气调节系统设计:基于MATLAB的恒温恒湿空气调节系统建模和仿真,包括空气调节系
    鱼弦:公众号【红尘灯塔】,CSDN内容合伙人、CSDN新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于MATLAB的恒温恒湿空气调节系统设计:原理、应用、实现与分析1.恒温恒湿空气......
  • 基于 Kubernetes 的容器化物联网平台
    鱼弦:公众号【红尘灯塔】,CSDN内容合伙人、CSDN新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)基于Kubernetes的容器化物联网平台1.简介基于Kubernetes的容器化物联网平......
  • 基于TSINGSEE青犀AI视频智能分析技术的山区林区烟火检测方案
    随着清明节的临近,山区、林区防火迫在眉睫,TSINGSEE青犀AI智能分析网关V4烟火检测算法利用物联网、人工智能、图像识别技术,有效监测和管理烟火活动,并在火灾发生的同时发出告警,通知护林员与管理人员。将山区林区的视频监控接入到AI智能分析网关V4并配置烟火检测算法,通过实时监控、......
  • 基于svelte webpack开发umd格式的npm包
    原文链接:https://www.cnblogs.com/yalong/p/18101609背景:平常会接触到vue、react、jquery项目,项目中有一些公共组件其实是可以复用的,但是在vue项目中封装好的组件,在react中又不能用;于是想找个方法,实现一次开发,多框架复用,调研发现svelte正好符合这个要求,把组件封装成npm发布......
  • 【Linux】生产者消费者模型{基于BlockingQueue的PC模型/RAII风格的加锁方式/串行,并行,
    文章目录1.认识PC模型2.基于BlockingQueue的PC模型2.1串行,并行,并发2.2理解linux下的并发2.2RAII风格的加锁方式2.3阻塞队列2.4深入理解pthread_cond_wait2.5整体代码1.Task.hpp2.lockGuard.hpp3.BlockQueue.hpp4.pcModel.cc3.总结PC模型1.认识PC模型知乎好文「......