首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Process.Start in BackgroundWorker

Process.Start in BackgroundWorker
EN

Stack Overflow用户
提问于 2012-04-06 07:26:18
回答 1查看 656关注 0票数 0

我试图在BackgroundWorker IsBusy的时候开始一个新的过程。

Global.asax:

代码语言:javascript
复制
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类来实现这个目标,但是我也得到了相同的结果。

EN

回答 1

Stack Overflow用户

发布于 2012-04-06 08:07:11

您正在从BackgroundWorkerDoWork委托内部启动一个新线程。当您启动DoWork事件时,为什么不从UI线程启动新进程呢?这在线程安全性和并发性方面要好得多--这也可能是导致问题的根本原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10040470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档