码迷,mamicode.com
首页 > Web开发 > 详细

MVC4 Action 两种异步方式

时间:2016-03-09 01:19:35      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

1. xxxAsync/xxxCompleted 组合方式异步,xxxCompleted  就是他的回调函数,在执行完 xxxAsync 后调用xxxCompleted  。

  使用 异步方式必须继承AsyncController 控制器:

      Async 异步方式通过 Controller的属性 AsyncManager 进行赋值 回调,看下面代码: 

    public class AppController : AsyncController
    {
        public void ArticleAsync(string name)
        {
            AsyncManager.OutstandingOperations.Increment();
            Task.Factory.StartNew(() =>
            {
                AsyncManager.Parameters["content"] = "hello world"; 
                AsyncManager.OutstandingOperations.Decrement();
            });
        }

        public ActionResult ArticleCompleted(string content)
        {
            return Content(content);
        }
    }

 

2.Task返回值。

   采用第一种方式异步我们需要为一个Action实现两个方法, 所以在MVC4中 定义了一个返回值类型为Task的异步方法。

   对于回调内容的显示通过调用Task的ContinueWith<ActionResult> 方法进行注册

   public Task<ActionResult> ArticleTask(string name)
        {
              return Task.Factory.StartNew(() =>
              {
                  AsyncManager.Parameters["content"] = "hello world";
              }).ContinueWith<ActionResult>(task =>
              {
                  string context = (string)AsyncManager.Parameters["content"];

                  return Content(context);
              });
        }

 

MVC4 Action 两种异步方式

标签:

原文地址:http://www.cnblogs.com/dragon-L/p/5256406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!