CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

在进程APP1中创建并打开新进程APP2,同时隐藏进程APP1;如果关闭新进程APP2后,再显示APP1,怎么处理?敬清高手指教

楼主xyy2(爱)2006-07-03 22:52:51 在 .NET技术 / C# 提问

在进程APP1中创建并打开新进程APP2,同时隐藏进程APP1;如果关闭新进程APP2后,再显示APP1,怎么处理?敬清高手指教  
          首先,我的用法如下:  
  string   filename   =   System.IO.Path.GetFullPath(@"*.exe")   ;   ///新进程    
  process.StartInfo.FileName   =   filename   ;                                  
  process.Start();                                                                                   ///新进程显示    
  this.Hide()   ;                                                                                         ///旧的进程隐藏  
  if(   process.HasExited   )                                                                     ///判断新进程是否关闭  
          this.Show()     ;                                                                               ///旧的进程重新显示  
  很明显,由于在新的进程process中停留时间稍长,if(   process.HasExited   )就会判断成process进程还在运行着,从而即使再关闭process,旧的进程仍然被隐藏  
   
  所以,我现在的问题是:   什么时候判断新进程被关闭比较合适? 问题点数:50、回复次数:5Top

1 楼xyy2(爱)回复于 2006-07-04 08:22:07 得分 0

我在  
  if(   process.HasExited   )                                                                     ///判断新进程是否关闭  
          this.Show()     ;      
  前加上延时System.Threading.Thread.Sleep(5000);  
  那么在五秒内关闭APP2进程,则APP1进程可以重新显示;过了五秒就不起作用了  
  请问谁有什么办法,或者在APP2进程关闭时调用某个函数来显示APP1进程,或者通过托管来调用,具体怎么操作?我有点疑惑,不知道怎么办才好Top

2 楼sxlfybb(房客)回复于 2006-07-04 08:31:34 得分 0

进程?应用程序?你的概念不清吧?  
   
  需要有个中间交换的应用程序Top

3 楼xyy2(爱)回复于 2006-07-04 22:30:30 得分 0

什么样的中间交换程序呢?Top

4 楼Knight94(愚翁)回复于 2006-07-05 08:37:31 得分 0

如果app2是你写的,那么使用Mutex类来进行控制。  
   
  首先,修改app2得main函数,大致如下:  
  Mutex   mUnique   =   new   Mutex(   false,   "UniqueName"   );//Replace   it   with   a   unique   string  
  mUnique.WaitOne();  
  //Run   your   app   here  
   
  mUnique.ReleaseMutex();  
   
  然后在app1中如下即可:  
  string   filename   =   System.IO.Path.GetFullPath(@"*.exe")   ;   ///新进程  
  process.StartInfo.FileName   =   filename   ;  
  process.Start();   ///新进程显示  
  this.Hide()   ;   ///旧的进程隐藏  
  Thread.Sleep(1000);//   Sleep   current   process   to   run   new   process  
  Mutex   mUnique   =   new   Mutex(   false,   "UniqueName"   );  
  mUnique.WaitOne();///wait   new   process   till   its   end  
  this.Show()   ;   ///旧的进程重新显示  
  mUnique.ReleaseMutex();  
  Top

5 楼Knight94(愚翁)回复于 2006-07-05 08:38:28 得分 50

Caution:  
   
  the   "UniqueName"   strings   in   different   places   must   be   the   sameTop

相关问题

关键词

得分解答快速导航

  • 帖主:xyy2
  • Knight94

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo