zoukankan      html  css  js  c++  java
  • MVC4 Action 两种异步方式

    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);
                  });
            }
  • 相关阅读:
    SpringBoot整合RabbitMQ
    NIO
    eclipse配置maven
    IDEA常用快捷键
    IDEA如何快速查看类中的属性和方法?
    Java之IO流
    JS判断对象是否包含某个属性
    Jquery获取链接请求的参数
    JS中indexOf的用法
    JS驼峰与下划线互转
  • 原文地址:https://www.cnblogs.com/dragon-L/p/5256406.html
Copyright © 2011-2022 走看看