首页 > 学院 > 开发设计 > 正文

C#~异步编程在项目中的使用

2019-11-17 03:01:02
字体:
来源:转载
供稿:网友

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;        }

而剩下的工作就是调用它了,这块内容就与具体项目有关了,在这里就不公开出来了,哈哈.


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表