关于子进程和父进程的问题

古月无华 2008-11-30 04:27:17
您好,不耽误您的时间,直接描述问题:
两个独立的程序A,B,A是主程序,B是升级程序
当我点击主程序A时,这时提示升级窗口,然后启动子进程B进行升级,子进程B启动后,把父进程A(主窗口)关闭,子进程B更新完后,要重新启动更新的父进程A,这时问题出现了,每次启动时都不正常,相应的Socket不能正常接发消息,还有一个问题就是,当我B启动后,正在进行更新时,A已经不存在了,这时双击桌面A时,启动也不正常.多谢指教!!!
...全文
211 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
古月无华 2008-12-01
  • 打赏
  • 举报
回复
呵呵,问题解决了,多谢楼上的几位,当主程序更新完后,我没有CreateProcess,而是用WinExec,可以实现自启动了.
yc_8301 2008-12-01
  • 打赏
  • 举报
回复
问题:
1.每次启动时都不正常,相应的Socket不能正常接发消息,
2.当我B启动后,正在进行更新时,A已经不存在了,这时双击桌面A时,启动也不正常
回答:
1.检查A关闭时,是否真的断开连接,释放资源等。
2.我的方案如下:
A 启动 B, B弹出对话框,让用户关闭A后进行更新。更新时,另外存放新程序。
B 更新Ok后,用新程序A 覆盖 A。
另外,可以在A程序中添加检查代码,检查 B是否启动,如果更新程序B已经启动,则提示用户,A不能启动,更新后再启动。

以上,由于没有经过实践,只是初步的想法,所以 是否可行,还有待高手指正。。。
csgdseed 2008-12-01
  • 打赏
  • 举报
回复
帮顶
古月无华 2008-12-01
  • 打赏
  • 举报
回复
to 3楼
其实主程序退出,是子进程给主进程发完信息后,主进程才退出的,这个不是强制退出,退出时关闭连接、释放资源.
cnzdgs 2008-11-30
  • 打赏
  • 举报
回复
“您好,不耽误您的时间,直接描述问题”——这句就是在浪费大家的时间。
不耽误您的时间,直接回答问题:主程序自己推出,不要让其它程序来强行结束,退出前主动关闭连接、释放资源。
古月无华 2008-11-30
  • 打赏
  • 举报
回复
回复1楼
1 问题是,更新完后,重新启动时,服务器会给主程序发消息,发几次,主程序都没有回复,日志里也没有记录
2 我说这个问题,我觉得对解决问题有帮助,您的方法也可行,担是还是要自启动的
我觉得是父进程和子进程之间的问题,父进程启动子进程,关闭父进程后,子进程中保存有父进程的相关信息,多谢大家
一条晚起的虫 2008-11-30
  • 打赏
  • 举报
回复
相应的Socket不能正常接发消息
//确认Socket是否正常。

//正在进行更新时,A已经不存在了,这时双击桌面A时,启动也不正常.多谢指教!!!
//更新时不用删除A,等更新完成后,再检查是否需要删除。更新的文件可以先保存为其他名称

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧