首页 > 编程语言 >同步程序中调用异步的方法

同步程序中调用异步的方法

时间:2023-05-27 17:14:01浏览次数:75  
标签:异步 Task 调用 task 同步 logger public await

我们平时碰到很多,同步的主程序中需要用到一些工具类是异步的,这样主程序还不能加上异步的 task等标识,就会报错.而直接调用似乎又等不到返回结果.

将调用包装在Task.Run<>(async () => await FunctionAsync()); 

实际winform 项目内参考的下边的例子 作为备忘

public class LogReader
{
    ILogger _logger;
 
    public LogReader(ILogger logger)
    {
        _logger = logger;
    }
 
    public LogEntity GetLog()
    {
        Task<LogEntity> task = Task.Run<LogEntity>(async () => await GetLogAsync());
        return task.Result;
    }
 
    public async Task<LogEntity> GetLogAsync()
    {
        var result = await _logger.GetAsync();
        // more code here...
        return result as LogEntity;
    }
}

 

标签:异步,Task,调用,task,同步,logger,public,await
From: https://www.cnblogs.com/zuochanzi/p/17436985.html

相关文章

  • go语言中如何实现同步操作呢
    1.简介本文探讨了并发编程中的同步操作,讲述了为何需要同步以及两种常见的实现方式:sync.Cond和通道。通过比较它们的适用场景,读者可以更好地了解何时选择使用不同的同步方式。本文旨在帮助读者理解同步操作的重要性以及选择合适的同步机制来确保多个协程之间的正确协调和数据共享......
  • go语言中如何实现同步操作呢
    1.简介本文探讨了并发编程中的同步操作,讲述了为何需要同步以及两种常见的实现方式:sync.Cond和通道。通过比较它们的适用场景,读者可以更好地了解何时选择使用不同的同步方式。本文旨在帮助读者理解同步操作的重要性以及选择合适的同步机制来确保多个协程之间的正确协调和数据共享......
  • ajax乱码问题和异步同步问题
    1. 测试内容: 201.1 发送ajax get请求    发送数据到服务器,服务器获取的数据是否乱码?    - 服务器响应给前端的中文,会不会乱码?1.2 发送ajax post请求    - 发送数据到服务器,服务器获取的数据是否乱码?    - 服务器响应给前端的中文,会不会乱码?1.3 包括还要......
  • 9、基于 timeout 机制为服务接口调用超时提供安全保护
    在一个复杂的系统里,可能你的依赖接口的性能很不稳定,有时候2ms,200ms,2s如果你不对各种依赖接口的调用,做超时的控制,来给你的服务提供安全保护措施,那么很可能你的服务就被各种垃圾的依赖服务的性能给拖死了大量的接口调用很慢,大量线程就卡死了,资源隔离,线程池的线程卡死了,超时的控制......
  • C#异步编程概念和使用
    异步编程要搞懂3个概念async、Task、await;async修饰符指明方法为异步方法;Task是异步方法返回类型;await是运算符,用来等待异步方法完成;当在异步方法中调用异步方法(理解为启动任务),可以在合适的时机等待任务完成,然后再使用返回的结果,这就是异步编程的优势,可以在一个过程中执行多......
  • 一文教会你用Apache SeaTunnel Zeta离线把数据从MySQL同步到StarRocks
    在上一篇文章中,我们介绍了如何下载安装部署SeaTunnelZeta服务(3分钟部署SeaTunnelZeta单节点Standalone模式环境),接下来我们介绍一下SeaTunnel支持的第一个同步场景:离线批量同步。顾名思意,离线批量同步需要用户定义好SeaTunnelJobConfig,选择批处理模式,作业启动后开始同步数据,当......
  • EasyDSS调用录像回看接口出现报错“请先合成mp4”,是什么原因?
    EasyDSS支持一站式的上传、转码、直播、回放、嵌入、分享功能,具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务,全面满足超低延迟、超高画质、超大并发访问量的要求。有用户反馈,在调用录像回看接口中的指定时间段录像播放及......
  • EasyDSS如何调用接口获取录像MP4文件合成状态?
    EasyDSS互联网视频云服务的视频直播/点播功能支持视频采集、编辑、上传、媒体资源管理、自动化转码处理、分发服务等,帮助用户快速搭建拥有极致观看体验、安全可靠的视频直播点播应用。有用户反馈在调用接口时,会出现合成中的字样,并不知道合成的录像MP4文件是否已经合成完毕。今天我......
  • 一个远程调用另外站点数据函数
     今天查看木马中发现一个黑客的远程调用数据函数蛮有用的,今天记录下:set_time_limit(0);error_reporting(0);$tr="stristr";$er=$_SERVER;functionhttpGet($url){$ch=curl_init();//设置选项,包括URLcurl_setopt($ch,CURLOPT_URL,$url);curl_setopt($c......
  • 同步Linux服务器时间
    0012***/usr/sbin/ntpdate172.17.14.50 https://www.jianshu.com/p/542439e7feb4https://www.cnblogs.com/pipci/p/12844550.html 二、不同机器之间的时间同步为了避免主机时间因为长期运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统......