【发布时间】:2011-12-30 06:11:46
【问题描述】:
在多线程应用程序中启动新进程时有什么问题需要我小心处理吗?
我在一个简单的项目中尝试过这个:
static void Main(string[] args)
{
Process.Start(@"D:\System\Desktop\a.txt");
MessageBox.Show("Success");
}
它运行完美。但是当我在使用多线程的大项目中执行此操作时,它的线程停止工作(“a.txt”已打开但“成功”未显示),而我的应用程序(其他线程)运行良好。
这种情况有什么问题?
【问题讨论】:
-
你可以试试 Console.Writeline("Success");相反,看看这是否有效?
-
我试过了。结果一样!启动该进程后,该线程中的所有内容都将停止!
-
嗯,我无法重现这个...我创建了一个线程来打开一个进程并向控制台发送一条消息,它可以正常工作...您还在做什么?您能否尝试在 process.start 之前放置一个断点,然后单步执行以查看它是否真的停止(因为它不应该)
-
是的,线程没有停止工作。但它不再处理任何代码,任何返回值......与停止相同。我不明白出了什么问题。这是我的函数:'private string RunNormal(string fullfilename) { try { Process.Start(fullfilename);返回完整文件名 + "|成功"; } catch (Exception e) { return fullfilename + "|" + e.ToString(); } }'
-
是你更大的项目,一个控制台应用程序或一个 Windows 应用程序,你想看看创建一个半量,如果情况变得更糟,例如在其中抛出一些 Thread.Sleep(1000)
标签: c# .net multithreading process process.start