Я хочу остановить Page_Load
, если он не будет завершен после определенного (настраиваемого) количества времени, а затем запишите ошибку на страницу и верните страницу.Остановить загрузку страницы и вернуть результат через определенное время
Я попытался использовать различные таймеры, например, так:
В Page_Load
:
System.Threading.Timer t = new System.Threading.Timer(ThrowExceptionAfterTimeElapsed, null, 4000, 10000000);
, а затем ...
void ThrowExceptionAfterTimeElapsed(object sender, EventArgs e)
{
throw new Exception();
}
А потом написать об ошибке на страницу на catch
в Page_Load
, но это не работает, поскольку таймер использует другой поток.
Я также пробовал javascript setInterval
на странице itslef, но функция в нем никогда не вызывалась (и я не знаю, как остановить загрузку страницы на сервере от клиента).
Итак, как мне остановить Page_Load
, запустите несколько строк кода и верните страницу клиенту?
Это не совсем понятно, что вы пытаетесь достичь, но, скорее всего, вы должны делегировать любую «длинную» операцию, которую вы делаете в 'Page_Load', для асинхронной операции и иметь слишком длительный тайм-аут операции. – Amit