当我加载我的页面时,我只能在后台工作进程完成后导航......它应该像名称所说的那样在后台执行吗?
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
BackgroundWorker _bgk = new BackgroundWorker();
_bgk.DoWork += new DoWorkEventHandler(DoWork_BackGroundWork);
_bgk.RunWorkerCompleted += new RunWorkerCompletedEventHandler(WorkComplete_BackGroundWork);
_bgk.RunWorkerAsync();
}
private void DoWork_BackGroundWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 99999; i++)
{
Trace.Write("STILL EXECUTING BACKGROUND WORKER");
}
}
private void WorkComplete_BackGroundWork(object sender, RunWorkerCompletedEventArgs e)
{
Trace.Write("===================== BACKGROUND WORKER FINISHED ===================");
}
最佳答案
BackgroundWorker
不能很好地与 ASP.NET 配合使用。
最重要的是,除非您喜欢玩火,否则启动后台线程会留下 IIS 可以在您不知情的情况下回收您的线程的可能性。最好不要在 ASP.NET 环境中使用这种类型的线程(不要说曾经,但要正确可能会很棘手)
关于c# - BackGroundWorker 不在后台执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8231437/