私は困っています。私の Web アプリには、ボタンの Click イベントでスレッドを作成してデータ集約型のタスクを実行するコードがあります。これは次のようなものです。
protected void button_Click(object sender, EventArgs e)
{
// Show loader image
loader.Show();
// Creating the thread
System.Threading.ParameterizedThreadStart ts = new System.Threading.ParameterizedThreadStart(RunThread);
Thread t = new Thread(ts);
t.Name = "BackgroundThread";
t.Priority = ThreadPriority.AboveNormal;
t.Start(HttpContext.Current);
}
private void RunThread(object state)
{
// Setting the current thread property as the background thread
CurrentThread = Thread.CurrentThread;
if (IsThreadRunning(CurrentThread))
{
CurrentThread.Join(TimeSpan.FromMinutes(6d));
}
// DO SOME HEAVY STUFF
}
ボタンをクリックすると、ローダーが表示されます。問題は、 JoinをBackgroundThreadで呼び出しても、 Page_Load イベントが頻繁に呼び出されてページが更新されることです。つまり、RunThreadが終了しない間、Page_Load が呼び出されます。これを防ぐことはできますか?
OBS: 私がやりたいことは: データ集約型スレッドが実行されている間、ページを繰り返し更新せずにローダーを表示することです。