ProcessStartInfo pi = new ProcessStartInfo ( Assembly.GetExecutingAssembly ().Location );
Process prc = new Process ();
prc.StartInfo = pi;
Application .ExitThread (); //结束但前线程
prc.Start (); //开启一个实例
为什么 Process.Start(exe文件) 执行时运行的窗体事件我加断点都不可单步调试????
它执行的是已个已经创建好的实例吗?与我现在的程序有什么关系呢?
搞不懂!!!!请高手大侠指点一二!!!!!!!!!
Application.Run是打开一个窗口并以此窗口作为当前执行的exe程序的界面
Process.Start是打开一个exe程序,如果此exe程序是.net程序的话就执行Main函数,如果你的Main函数里还是Process.Start的话就是无限循环哦
为什么 Process.Start(exe文件) 执行时运行的窗体事件我加断点都不可单步调试????
回答:这个应该不是以debug模式启动的吧,所以你不可以设置断点调试。
它执行的是已个已经创建好的实例吗?与我现在的程序有什么关系呢?
回答:应该是新创建的实例,你的这个应该是那个的父进程。
Application .Run(窗体实例) 和Process.Start(exe文件) 有什么区别
Application .Run实际上你的程序已经启动(已经进入main函数),之后运行一个窗体的消息循环
而Process.Start应该是去调用exe的入口函数,应该是通过shell运行起来的,就像你双击它一样的效果
Process的方法是启动了一个新的进程(线程容器)。启动以后和你的程序就是处于各自独立运行,你在本进程里的调试当然跟不到对方进程内了。
在需要同步的情况下,启动另一个进程以后还需要知道对方何时退出,这时候可以用WaitForSingleObject去保持等待状态。
Process.Start是直接运行任意的可执行程序,可以说和你的程序没有任何关系。
Application .Run则是在当前应用程序内部执行某一个窗体实例