首页 新闻 搜索 专区 学院

Application .Run(窗体实例) 和Process.Start(exe文件) 有什么区别

0
悬赏园豆:20 [已关闭问题]

  ProcessStartInfo pi = new ProcessStartInfo ( Assembly.GetExecutingAssembly ().Location );
            Process prc = new Process ();
            prc.StartInfo = pi;
            Application .ExitThread ();  //结束但前线程
            prc.Start ();                         //开启一个实例

为什么 Process.Start(exe文件) 执行时运行的窗体事件我加断点都不可单步调试????

它执行的是已个已经创建好的实例吗?与我现在的程序有什么关系呢?

搞不懂!!!!请高手大侠指点一二!!!!!!!!!

信息浪子的主页 信息浪子 | 初学一级 | 园豆:200
提问于:2008-12-22 17:37
< >
分享
其他回答(3)
0

Application.Run是打开一个窗口并以此窗口作为当前执行的exe程序的界面

Process.Start是打开一个exe程序,如果此exe程序是.net程序的话就执行Main函数,如果你的Main函数里还是Process.Start的话就是无限循环哦

Gray Zhang | 园豆:17610 (专家六级) | 2008-12-22 18:52
0

为什么 Process.Start(exe文件) 执行时运行的窗体事件我加断点都不可单步调试????

回答:这个应该不是以debug模式启动的吧,所以你不可以设置断点调试。

它执行的是已个已经创建好的实例吗?与我现在的程序有什么关系呢?

回答:应该是新创建的实例,你的这个应该是那个的父进程。

Application .Run(窗体实例) 和Process.Start(exe文件) 有什么区别

Application .Run实际上你的程序已经启动(已经进入main函数),之后运行一个窗体的消息循环

而Process.Start应该是去调用exe的入口函数,应该是通过shell运行起来的,就像你双击它一样的效果

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-22 21:11
0

Process的方法是启动了一个新的进程(线程容器)。启动以后和你的程序就是处于各自独立运行,你在本进程里的调试当然跟不到对方进程内了。

在需要同步的情况下,启动另一个进程以后还需要知道对方何时退出,这时候可以用WaitForSingleObject去保持等待状态。

hoodlum1980 | 园豆:549 (小虾三级) | 2008-12-23 16:02
0

Process.Start是直接运行任意的可执行程序,可以说和你的程序没有任何关系。

Application .Run则是在当前应用程序内部执行某一个窗体实例

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2008-12-25 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册