首页 > 语言 > 关键词 > ASP.NET最新资讯 > 正文

使用ASP.NET MVC Futures 中的异步Action

2009-03-09 13:21 · 稿源:博客园

ASP.NET MVC中使用异步是比较麻烦的,从RC1版开始ASP.NET MVC Futures中提供了几个支持异步的类。

相关的类有:AsyncActionDescriptor、AsyncController、AsyncControllerActionInvoker、AsyncManager、AsyncResultWrapper、AsyncTimeoutAttribute、NoAsyncTimeoutAttribute。

相关接口有:IAsyncActionDescriptor、IAsyncActionInvoker、IAsyncController、IAsyncManagerContainer。

下面讲解一下怎么用它们

一、使用异步Action前的准备工作

1.引用Microsoft.Web.Mvc。    

2.先要将要异步处理的Url交由MvcHttpAsyncHandler处理,这一步可以由AsyncRouteCollectionExtensions.MapAsyncRoute来设置规则,将原MapRoute处理的规则改为MapAsyncRoute,如:

 routes.MapAsyncRoute(
 
                "Default",
                "{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = "" }
            );
 

3.将相应的Controller继承于AsyncController。

public class HomeController : AsyncController    {    }

4.我们约定以下定义的Action都在HomeController中

二、第一种异步Action方式:Action、ActionCompleted方式

ASP.NET MVC Futures支持按名称自动寻找异步Action的方法

其使用方法为:

public void Async1(){

            //主线程
           
        }
       
        public ActionResult Async1Completed(){
       
            //自动寻找与主线程 Action名称+Completed 的Action 做为异步Action
           
            return Content("Async1");}

三、第二种异步Action方式:BeginAction、EndAction方式

如果第一种方式你了解了的话第二种自然也不在话下,不过这种方式是与其它类的异步调用一起使用。

   public delegate void AsyncEventHandler();//这里声明了一个委托,//也可使用
  
WebRequest/WebResponse/SqlConnection来实现这个异步过程
  
        public void Event1(){}
       
        public IAsyncResult BeginAsync3(AsyncCallback callback, object state){
       
           AsyncEventHandler asy = new AsyncEventHandler(Event1);
          
            ViewData["a"]=asy;//这里在方法間传值必须使用辅助存储对象,第一种方法中也是一样
            return asy.BeginInvoke(callback, state);
           
        }
       
        public void EndAsync3(IAsyncResult result){
       
//转到异步的Action中

            var a = ViewData["a"] as AsyncEventHandler;
           
            a.EndInvoke(result);
           
            Content("完成").ExecuteResult(this.ControllerContext);
        }

四、第三种异步Action方式:使用AsyncManager.RegisterTask及委托

如果感觉上面使用2个方法才能实现异步Action有些麻烦的话(也的确是麻烦),可以使用AsyncManager.RegisterTask来调用委托来实现异步调用。

public void  Async2(){

            this.AsyncManager.RegisterTask(c => {
           
                //主线程,调用异步线程
               
                c(null);
               
            }, delegate(IAsyncResult result) {
           
                //异步部分   
                          
                Content("Async2").ExecuteResult(this.ControllerContext);
               
            });
           
        }

其实无论是哪种方法都感觉不太完美,我个人觉得Action/ActionCompleted的方法可能更优美一点,适合一般使用(只是这三个比较)。只是AsyncManager.RegisterTask的方法传值方便一点,而Begin/End方法更适合与其它异步的操作配合。

网友热搜:

  • 相关推荐
  • 大家在看
  • Netflix将TikTok视为新晋竞争对手 称其增长令人震惊

    7月21日消息,据外媒报道,7月16日,在随第二季度财报发布的股东公开信中,Netflix首次提到TikTok,将其视为需要认真对待的竞争对手。公开信中写道:“TikTok的增长令人震惊,这体现了互联网娱乐的流动性。”报道称,Netflix一般很少这样称赞竞争对手。Netflix(奈飞)成立于1997年,是目前美国最大的网络流媒体服务提供商,拥有众多影视剧版权,出品了《纸牌屋》《黑镜》等热门剧集。Netflix的财报包含一部分关于竞争

  • IBM已与巴西RPA软件供应商WDG Automation达成最终收购协议

    【TechWeb】7月9日消息,据国外媒体报道,当地时间周三,IBM宣布,它已与巴西机器人流程自动化软件供应商WDG Automation达成最终收购协议。外媒报道称,该交易的财务条款并没有披露,预计将于2020年第三季度完成。IBM指出,此次收购将进一步提升其融合AI的自动化综合能力,涵盖从业务流程到IT运营的各个环节。当融合AI的自动化应用于业务流程和IT运营时,它可以帮助缩短识别问题和响应之间的时间。(小狐狸)

  • 首家“快手K-Station欢唱店”落地广州天河 创新玩法引导线下消费

    7 月 10 日,首家“快手K-Station欢唱店”在广州时尚天河惊喜亮相。据了解,该店面坐落于时尚天河中街,整体面积约 200 平米。不同于其他线下KTV品牌,快手K-Station欢唱店首次采用了“互联网+KTV”的新玩法,在装修和设计上也颇具特色。整个空间包含开放式舞台机、K歌房、观众休闲区三大区域,全程自助式消费。走进店内,首先映入眼帘的是一个公共的舞台区,据了解,该舞台机面向所有顾客开放,手机扫码支付即可登台演唱,同时现?

  • AMD推出首款64核PRO工作站 联想ThinkStation P620将搭载

    【TechWeb】7月16日消息,据国外媒体报道,AMD发布了全新锐龙Threadripper PRO系列处理器。该系列处理器支持企业级AMD PRO技术,拥有最高64个核心和超大带宽。AMD据介绍,AMD锐龙Threadripper PRO处理器专为OEM和系统集成商的专业工作站而设计,提供全方位计算能力,可按工作的线程数量以及负荷轻重分别匹配极具优势的核心数量和高主频单核性能。联想全新ThinkStation P620将作为全球首款搭载AMD Threadripper Pro 3995WX处理器的

  • Mida Solutions爆出多个漏洞,或殃及微软,思科,惠普,中国电信等40余名企

    Mida Solutions是一家专注于统一通信(UC)的高技能意大利公司。自2004年以来,它提供独特的专业知识以及一整套高级服务和语音应用程序,其使命是为通信提供增值的创新技术。Mida团队已成为统一协作和专业沟通的全球领导者,几乎所有行业的服务提供商,系统集成商。其合作伙伴有微软,思科,惠普,中国电信等40个世界知名企业。Mida eFramework是Mida Solutions公司旗下视频和语音应用程序的完整服务套件,与几乎所有主要的UC平台兼容。

  • 重新定义专业高性能PC 硬核表现 创造无限 全新联想ThinkStation K新品发布

    7月15日,联想ThinkStation家族新成员——ThinkStation K将在京东平台全新发布。ThinkStation K面向企业用户,以ThinkStation经典之名,将高性能与专业生产力锚定,在行业中诠释专业高性能PC的全新定义,开创ThinkStation全新类别。全新ThinkStation K具备能够支持任意工作的卓越性能,以及可满足关键业务环境需求的强大可靠性。其能够满足平面设计、职业技能教育、游戏设计、数字娱乐传媒等行业的专业用户在大数据处理、广告设计?

  • TikTok粉丝给特朗普竞选App刷差评 TikTok最新消息动态

    【TikTok粉丝给特朗普竞选App刷差评】据媒体报道,近期数千名美国青少年给特朗普 2020 年竞选App刷了大量差评。​据报道,进入美国市场仅两年多,抖音国际版TikTok下载量一路攀升,从与美各大社交巨头的竞争中突出重围,圈了一大波青少年和年轻用户。然而当 7 月初传出特朗普政府要封禁TikTok的消息后,TikTok上的美国年轻人们立刻不干了。

  • TikTok官方发《致TikTok社区的一封信》 疑回应被禁用

    8 月 1 日,关于TikTok被美国禁用的事情传得沸沸扬扬,此前官方并没有对此进行过多回应。不过现在,TikTok官方视频账号发布了一条《给TikTok社区的一封信》,疑似回应了被美国禁止运营的事情。

  • 特朗普将禁止TikTok在美国运营 微软正在谈判收购TikTok美国业务

    【特朗普将禁止TikTok在美国运营】据美国《国会山报》及俄罗斯卫星通讯社报道,特朗普当地时间 7 月 31 日在其专机「空军一号」上对记者表示,他将禁止TikTok在美国运营。

  • 微软正在谈判收购TikTok美国业务 微软、TikTok回应全文说了什么

    【微软正在谈判收购TikTok美国业务】据福克斯商业台官方推特称,微软正在洽谈收购 TikTok 在美国的业务。福克斯商业台的 Charles Gasparino表示,消息来自投行知情人士,尚未收到 TikTok 或微软的评论。

  • 字节跳动倾向于将TikTok分拆独立 TikTok最新消息动态

    【字节跳动倾向于将TikTok分拆独立】据媒体报道,知情人士称,TikTok可以完全独立于字节跳动,以继续在海外运营。但相比出售给微软,字节跳动更倾向于将TikTok分拆独立,届时TikTok这个名字仍将保留,但不再由字节跳动管理。

  • TikTok粉丝给特朗普竞选App刷差评 字节跳动将把TikTok总部迁至伦敦

    据报道,进入美国市场仅两年多,抖音国际版TikTok下载量一路攀升,从与美各大社交巨头的竞争中突出重围,圈了一大波青少年和年轻用户。然而当 7 月初传出特朗普政府要封禁TikTok的消息后,TikTok上的美国年轻人们立刻不干了。

  • 微软暂停收购TikTok美国业务谈判 TikTok美国区总经理称不会离开

    【微软暂停收购TikTok美国业务谈判】据《华尔街日报》报道,在特朗普上周五表示反对由一家美国公司收购TikTok美国业务后,微软已暂停有关收购TikTok美国业务的谈判。知情人士称,字节跳动创始人张一鸣也已同意出售自己的股份。

  • Tik Tok美国卖给Google怎样?

    2015 年,张一鸣说“世界上只有1/ 5 的网民在中国”,到今天字节跳动差不多算是全球化最成功的中国互联网企业了。但是因为“文明的冲突”又不能强调中国,去年就为TikTok寻找全球总部,数据存在本地、内容进一步本地化、设计本地产品版本、收缩在中国员工对海外产品的数据权限、团队人员构成持续本地化,等等。

  • 字节跳动回应TikTok总部迁移:正探讨在美国之外设立TikTok总部的可能性

    8月3日消息,有媒体报道称字节跳动考虑将TikTok总部由北京迁移到伦敦。该报道指出,字节跳动创始人张一鸣有意在伦敦成立新办公室,英国对于字节跳动此举表示支持和欢迎。对此字节跳动方面回

  • TikTok建立首个欧洲数据中心

    据BBC6 日报道,TikTok方面表示,他们计划在爱尔兰建立一个价值 5 亿美元的数据中心,存储欧洲用户通过短视频应用程序生成的视频、消息和其他数据。该公司表示,建立欧洲数据中心的决定是“长期以来”一直在考虑的事情。

  • 不放弃:微软仍在洽购TikTok

    对于上周末传出的微软和TikTok收购交易谈判暂时中止的说法,新浪科技援引微软方面的回应称,双方仍在就收购TikTok在美业务进行讨论,商谈将不晚于9月15日完成。微软还透露可能会邀请其它美国投

  • 现在,一群VC/PE想买下TikTok

    作者 | 杨继云报道 | 投资界PEdailyTikTok怎么办? 7 月 22 日,一则消息传回了国内:据The Information报道,知情人士透露,字节跳动的部分美国投资者,正在与字节跳动商讨联合收购TikTok多数股权的可能性。这些投资方包括红杉、泛大西洋投资、软银以及NEA等全球顶级风投机构。 今日上午,投资界向字节跳动官方求证,对方表示:不予置评。与此同时,投资界还向对字节跳动背后多家VC/PE机构核实,但部分投资方无奈表示目前不方便透

  • 消息称:TikTok或将考虑将总部设在伦敦

    知情人士透露,过去几个月,TikTok一直在跟英国政府商量,希望将该公司总部设在伦敦。这也是该公司希望跟母公司字节跳动保持距离的战略的一部分。知情人士说,该公司正在考虑多个地点,伦敦是其中之一。但TikTok尚未作出任何决定。

  • 《福布斯》:特朗普针对TikTok的行动让所有美国人尴尬

    关于特朗普总统针对TikTok的做法,Toreador Research&Trading公司高级经济顾问在《福布斯》发表评论文章,称这么做会让所有能共情的美国人尴尬。全文摘译如下:上礼拜得知特朗普威胁要封禁在全球范围内都广受欢迎的TikTok时,这种感觉让人很羞愧和尴尬。美国人一向推崇自主创业。美国是技术进步的中心。身为美国人,我们可以为其他人试图做我们最擅长的事感到激动。而现在这一幕,就像是看到碧昂

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议
  • 热门标签