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);
                  });
            }
  • 相关阅读:
    虚拟机三种虚拟网络的区别
    关于 三次握手和四次挥手 的生动解析
    Tkinter布局管理器
    F#周报2019年第4期
    F#周报2019年第3期
    ML.NET 0.9特性简介
    F#周报2019年第2期
    浏览器保存数据的几种方法
    F#周报2019年第1期
    ML.NET教程之客户细分(聚类问题)
  • 原文地址:https://www.cnblogs.com/dragon-L/p/5256406.html
Copyright © 2011-2022 走看看