MVC 3 Async Controller для преобразования видео - PullRequest
0 голосов
/ 06 января 2012

Я не особо разбираюсь в контроллере Async, сейчас я читаю все, что могу, но я подумал, что постараюсь сэкономить время, поскольку у меня довольно сжатые сроки.

Я работаю над проектом, который позволяет пользователям загружать видеоклипы, но затем я хочу конвертировать их в разные форматы для воспроизведения на разных устройствах. Я думал о том, чтобы сделать это сразу после загрузки, но недостатком является то, что пользователь будет ждать, пока это не закончится, прежде чем сможет уйти.

Итак, на мой вопрос, позволят ли использование асинхронного контроллера и действия выполнить процесс преобразования без того, чтобы пользователю пришлось ждать на странице загрузки?

Извиняюсь, если это глупый вопрос, как я уже говорил, я только начал читать об асинхронных контроллерах

Спасибо

1 Ответ

1 голос
/ 06 января 2012

Нет. AsyncController освобождает поток, выполняющий контроллер, для выполнения других задач при низкой загрузке ЦП (например, при интенсивном вводе-выводе). Результат не будет возвращен клиенту, пока метод действия не вернется.

Вам лучше начать конверсию в отдельной ветке, если вы хотите быстро вернуть страницу. Мы используем этот подход при отправке электронных писем, чтобы пользователю не приходилось ждать отправки электронного письма, прежде чем мы вернемся к ним.

Вот как мы отправляем электронную почту.

// 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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...