2012-01-06 28 views
0

我不是真的在異步控制器上,我目前正在閱讀我能做的,但我想我會嘗試和保存自己一段時間,因爲我在一個相當緊迫的截止日期。MVC 3異步控制器的視頻轉換

我正在開發一個項目,該項目允許用戶上傳視頻剪輯,但是我希望將它們轉換爲不同格式以便在不同設備上播放。我正在考慮在上傳發生後直接進行此操作,但不利的一面是用戶將在他們離開之前等待它完成。

因此,對於我的問題,使用異步控制器和操作允許轉換過程發生與用戶不得不在等待上載頁面?

道歉,如果這是一個愚蠢的問題,就像我說的,我只是剛剛開始閱讀有關異步控制器

感謝

回答

1

號AsyncController解放了線程執行控制器時做其他事情有CPU使用率低(例如繁重的I/O)。在操作方法返回之前,結果將不會返回給客戶端。

如果您想快速返回頁面,您最好在單獨的線程中開始轉換。我們在發送電子郵件時使用這種方法,這樣用戶在我們返回視圖之前不必等待發送電子郵件。

以下是我們如何發送電子郵件。

// this can go in an action method, or you can DI this code as a service 
var sender = new SmtpEmailSender(message); 
var thread = new Thread(sender.Send); 
thread.Start(); 
... 
return View(model); 

// this is the code run by the new thread 
// (EmailMessage is a custom type in our app) 
public class SmtpEmailSender 
{ 
    public SmtpEmailSender(EmailMessage emailMessage) 
    { 
     // arg to instance field 
    } 

    public void Send() 
    { 
     // construct System.Net mail and send over SMTP 
    } 
} 
+0

感謝您的快速響應。按照您的建議,您是否有更多關於如何開始新線程的信息? – 2012-01-06 20:36:23

+0

再次感謝您的快速反應和很好的信息 – 2012-01-06 23:02:25