我正在尝试在BackgroundWorker IsBusy时启动一个新进程。
的Global.asax:
BackgroundWorker thread;
protected void Application_Start(object sender, EventArgs e)
{
StartThread();
}
protected void StartThread()
{
thread = new BackgroundWorker();
thread.DoWork += new DoWorkEventHandler(DoWork);
thread.RunWorkerAsync();
}
private void DoWork(object sender, DoWorkEventArgs e)
{
Process p = new Process();
p.StartInfo.FileName = "exe.exe";
p.Start();
p.WaitForExit(10000);
}
但什么都没发生。此外,没有例外。 我在p.Start()行插入了一个断点。一切正常,但过程没有开始。
这可能是什么原因? 我也试过使用Thread类,但我得到了相同的结果。
答案 0 :(得分:0)
您正在BackgroundWorker
的{{1}}代表内部开始一个新主题。当您触发DoWork
事件时,为什么不从UI线程启动新进程。这在线程安全性和并发性方面要好得多 - 这也可能是导致问题的根本原因。