C#~异步编程在项目中的使用
一些闲话
对异步编程没有了解的同学可以看我的这篇文章<C#~异步编程>,今天主要说一下,在项目中怎么就用到了异步编程!在进行WEB开发时,异步这块我们用的并不多,但当你的项目做到一定规模时,它可以与其它站点(API),其它设置(手机,平板)之间的通讯就多了起来,这时,为了提高UI(浏览器,手机终端,平板终端,winform终端)的响应能力,我们就需要引入异步了.
项目用到了它
我们这个项目是个直播功能的项目,直播的内容存储在第三方,它们为我们提供了相关的接口,web服务的(soap的,目前比较流行RestFul的),当我们老师端完成了直播后,需要关闭它,然后第三方会通知我们,我们接到通过后,将课程的状态改为"完成"就可以了,在这里,我们需要用到了录课功能,录课是第三方在老师结束直播后才进行的工作,所以,当第三方通知我们完成后, 这时,录课的视频还没有写在第三方服务器上,所以,我们必须要让程序sleep一下,再进行获取工作,这种情况,就用到了异步和线程的知识了.
项目中的代码
我自己封装了一个根据时间段去调用WEB服务的方法,下面是代码
/// <summary> /// 线程轮训服务 /// </summary> /// <param name="ws">要轮训的代码块</param> /// <param name="interval">间隔的秒数</param> /// <returns></returns> private string ThreadPoolService(Func<string> ws, Action<string> logger, params int[] interval) { string url = ws(); foreach (int i in interval) { Thread.Sleep(i * 1000); url = ws(); if (!string.IsNullOrWhiteSpace(url)) { logger(string.Format("点播轮训调用时间:{0}秒,发生的时间:{1}秒", i, DateTime.Now)); break; } } return url; }
而剩下的工作就是调用它了,这块内容就与具体项目有关了,在这里就不公开出来了,哈哈.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2013-07-25 我也来玩玩WinForm~BeginInvoke让用户体验更好!
2011-07-25 EF架构~终于实现了Update方法的统一