我有麻烦了。在我的web应用程序,我有创建一个按钮的Click事件线程来执行数据密集型任务的代码中,是这样的:C#Web应用程序线程
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
}
在点击该按钮i显示了装载机。问题是:即使呼叫加入在BackgroundThread,Page_Load事件被频繁调用,使页面刷新。换句话说,虽然RunThread没有完成,Page_Load正在调用。我可以防止这种情况发生吗?
OBS:我想要做的是:在数据密集型线程运行时显示加载器,而不在页面上进行重复刷新。
不要调用'page_load'的高优先级线程吗?如果你解释这个试图解决什么问题,也许可以提供一个更好的选择。 – Oded
请让你的问题更清楚,你想做什么? – Anri
你为什么要在当前线程上调用'Join'?这是一个毫无意义的操作。 –