мониторинг потока asp.net с другой страницы - PullRequest
1 голос
/ 26 марта 2009

В asp.net 2.0, c #.

Можно ли запустить поток со страницы, например, при нажатии кнопки asp: и с другой страницы проверить, не завершился ли этот поток?

Причина: у нас есть страница, которая запускает длинный серверный скрипт при нажатии кнопки. Однако, поскольку мы не хотим ждать окончания сценария на этой странице, мы подумали о создании потока, который выполняет сценарий, затем получили идентификатор потока и перенаправили пользователя на страницу «Пожалуйста, подождите», обновление которой проверяется каждый раз. 5 секунд, чтобы проверить, завершился ли поток.

Есть идеи лучше, как этого добиться?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 марта 2009

Уже есть подход, встроенный в ASP.NET для такого рода вещей - это асинхронная модель страницы. Это можно реализовать двумя способами, и вы можете найти подробную информацию о них здесь со всеми объясненными преимуществами.

0 голосов
/ 26 марта 2009

Это можно сделать, но я бы использовал Ajax, чтобы сделать опыт лучше.

По сути, вы вызываете ваш метод, и он возвращает идентификатор для потока. Это не обязательно должен быть идентификатор потока, но вам нужен какой-то уникальный идентификатор, который можно передавать между страницами / вызовами.

Прежде чем вы вернетесь с этого вызова / страницы, вы должны выполнить свой поток.

Затем, когда ваш клиент проверяет состояние, он проверяет сеанс или какое-либо другое общее состояние, в результате чего результат будет указываться на идентификаторе, который вы вернули ранее.

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

...