Учусь .NET и теперь я учусь веб Developement с ASP .NET MVC 4.C# Многопоточность ASP.NET MVC 4 - Эквивалент System.Windows.Threading.Dispatcher?
Я сделал задачу:
Task t = new Task(new Action(() =>
{
while (convert("suitandtie.mp4") != 1)
{
if (i == 4)
{
// Here I want to access in mainthread property
// I need to change text for viewBag like :
// ViewBag.Message = "Convert failed";
// But I need a Dispatcher and invoke for accessing
// the ViewBag of the mainthread
break;
}
i++;
}
}));
t.Start();
В .Net Заявке, с System.Windows.Threading.Dispatcher , его можно использовать для вызова вызова. я сделал это в моем приложении:
this.Dispatcher.Invoke(new Action(() =>
{
ContactBook.Add(Person("Mark", "232 521 424"));
}));
Когда я добавил Марк в записной книжке, он добавил в ContactBook в mainthread, не нити, созданной задачей.
Помогите пожалуйста получить доступ к ViewBag.Message mainthread?
Учитывая безгражданство MVC, я даже не знаю, как вы хотите получить доступ к свойству 'ViewBag' после того, как действие завершилось, и представление было отображено. Вы либо должны заблокировать контроллер для обработки, а затем показать сообщение или сделать клиентский AJAX-вызов (неблокирующий). –
Поскольку этот код предназначен для конвертирования видеофайлов, он может быть длинным. Я хочу загрузить новый вид. Я не хочу, чтобы пользователь подошел к концу процесса преобразования, потому что это одна минута ожидания. Я хотел бы преобразовать файл в поток, и если сбой преобразования после 4 попыток, я хочу сказать пользователю, что преобразование завершилось неудачей с свойством ViewBag.Message. Вы понимаете? Если я не делаю этого в потоке, представление блокируется из-за контроллера ... – manonthemoon
И вы просто ** не можете ** получить доступ к ViewBag от контроллера * после того, как * визуализирован вид. Это было бы бессмысленно, представление было отображено и отправлено клиенту, соединение было закрыто, вот и все. Тот факт, что ваш рабочий поток все еще работает после того, как вы визуализировали представление, не делает его другим. Что вам нужно, здесь звонки AJAX ... –