С веб-страницы я запускаю трудоемкую работу и обновляю ее статус в пользовательском интерфейсе с помощью webmethod.
Работа выполнена в потоке:
ThreadPool.QueueUserWorkItem(new WaitCallback(DoJob), parameters);
Задание задает свой статус, используя статические свойства, и когда веб-страница, используя javascript, вызывает веб-метод, она читает эти свойства.
[System.Web.Services.WebMethod]
public static ProcessStatus GetProgressStatus()
{
Jober.Lock.EnterReadLock();
ProcessStatus st = new ProcessStatus(Jober.PercentageCompleted, Jober.TotalNumber);
Jober.Lock.ExitReadLock();
return st;
}
Прогресс пользовательского интерфейса обновляется через javascript, проблема в том, что после завершения потока мне нужно обновить пользовательский интерфейс на стороне сервера, поэтому javascript здесь мне не поможет.
Как лучше всего сигнализировать о завершении потока?