簡體   English   中英

我如何在ASP.NET MVC 3中創建asynchronus結果?

[英]how i can make asynchronus result in ASP.NET MVC 3?

我希望JsonResult中的一個東西是他們在收到瀏覽器[客戶端]的請求后做出響應並在完成任務之前快速響應。

表示請求在任務完成之前響應並運行一個線程來完成任務。

任何人都可以告訴我在asp.net MVC中執行此操作的代碼

AJAX不適合您的場景嗎?

$.getJSON('@Url.Action("Foo")', function(result) {
    // once the task completes this callback will be executed
});
// flow continues to execute normally

在服務器端:

public ActionResult Foo()
{
    // TODO: some task
    return Json(someResult, JsonRequestBehavior.AllowGet);
}

如果此任務是I / O密集型,您可以利用異步控制器和I / O完成端口。

如果你有一個發射后的場景,你可以簡單地啟動任務並立即從控制器返回:

public ActionResult StartTask()
{
    // Fire the task
    Task.Factory.StartNew(() => 
    {
        // TODO: the task goes here
        // Remark: Ensure you handle exceptions
    });

    // return immediately
    return Json(
        new { Message = "Task started" }, 
        JsonRequestBehavior.AllowGet
    );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM