Webページから、時間のかかるジョブを開始し、webmethodを使用してUIのステータスを更新します。
ジョブはスレッドで実行されます:
ThreadPool.QueueUserWorkItem(new WaitCallback(DoJob), parameters);
ジョブセットは静的プロパティを使用してステータスを設定し、JavaScriptを使用してWebページがWebメソッドを呼び出すと、それらのプロパティを読み取ります。
[System.Web.Services.WebMethod]
public static ProcessStatus GetProgressStatus()
{
Jober.Lock.EnterReadLock();
ProcessStatus st = new ProcessStatus(Jober.PercentageCompleted, Jober.TotalNumber);
Jober.Lock.ExitReadLock();
return st;
}
UIの進行状況はjavascriptを介して更新されます。問題は、スレッドが完了した後、サーバー側でUIを更新する必要があるため、javascriptはここでは役に立ちません。
スレッドが完了したときに通知するための最良の方法は何ですか?