这就是我所追求的:我希望主线程产生一个单独的线程;单独的线程将打开一个程序,为该程序提供一个参数(文件名),然后一旦该程序关闭,子线程将终止,主线程可以继续它的工作.我已经创建了一个非常简单的代码示例来说明.确实,它甚至不是一个单独的线程,它只需要等到程序完成它的工作.我在这做错了什么?非常感激任何的帮助!
class Program{ static voID Main(string[] args) { Console.Writeline("opening...."); var t = new Thread(StartProgram); t.Start(); t.Join(); Console.Writeline("Closed"); Console.Readline(); } private static voID StartProgram() { var startInfo = new processstartinfo(); startInfo.filename = @"c:\program.exe"; startInfo.Arguments = @"file.txt"; var p = Process.Start(startInfo); p.WaitForExit(); }}解决方法 你为什么要打扰一个单独的线程呢?您当前的Main方法可以更简单地重写为:
static voID Main(string[] args){ Console.Writeline("opening...."); StartProgram(); Console.Writeline("Closed"); Console.Readline();}
StartProgram已经在等待进程退出…为什么要引入一个新线程?也许我错过了一些东西……
总结以上是内存溢出为你收集整理的c# – 使线程等待退出而不诉诸Thread.Sleep()全部内容,希望文章能够帮你解决c# – 使线程等待退出而不诉诸Thread.Sleep()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)