В моем контроллере C # я запустил асинхронную задачу (используя Task.Run), а затем перенаправил на другую страницу.Моя цель состояла в том, чтобы полностью загрузить страницу, пока асинхронная задача выполнялась в фоновом режиме.Там будет код javascript, продолжающий пинговать веб-сервер, чтобы увидеть, выполнена ли работа.Однако я заметил, что код выполняет строку перенаправления перед выполнением загрузки в асинхронном потоке, что хорошо.Однако моя страница не начала загружаться, пока не завершится асинхронный поток (даже после завершения выполнения строки перенаправления).
Я пытался
Task.Run(() => someLoadingCode());
HostingEnvironment.QueueBackgroundWorkItem(a => someLoadingCode());
new Thread(() => someLoadingCode()) { IsBackground = true }.Start();
, но ни один из них не работает.
Это мой код:
public void Controller()
{
Task.Run(() => someLoadingCode());
Response.Redirect(url);
}
Так как someLoadingCode может занять 10 минут, я хотел, чтобы он перенаправлял на мою новую страницу во время загрузки в фоновом режиме.Пользователь может даже щелкнуть мышью и перейти на другую страницу после перенаправления.Но теперь он не загрузит мою новую страницу, пока не завершится someLoadingCode.