C#中Process.GetProcessesByName的问题

初学C#,向各位高手请教如下问题:为什么我在执行Application.Restart();后,再用Process.GetProcessesByName("ProgNam... 初学C#,向各位高手请教如下问题:
为什么我在执行Application.Restart();后,再用Process.GetProcessesByName("ProgName")得到两个对象,而不是一个?
请高手指教!多谢!
为了保证同时只有一个程序运行加了一些相关代码.现在想实现重新登录的功能,直接用了一句Application.Restart()重启程序以转向登录窗口,可是转向时却出现了"该程序正在运行,双击右下角托盘即可显示!"的提示,不知是何原因.
经过输出显示,Process.GetProcessesByName("ProgName")在Application.Restart();执行后存在两个不同Id的Process.
另:如果不用这种方法,还有别的更好的办法吗?请高手不吝赐教!
展开
 我来答
百度网友14b669420
2009-03-25 · 超过28用户采纳过TA的回答
知道答主
回答量:159
采纳率:0%
帮助的人:96.5万
展开全部
Application.Restart();
Process.GetProcessesByName("ProgName")
两个没关系的
Process.GetProcessesByName("ProgName")反回的就是个数组
进程里名字不是唯一的呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apollohan2008
2009-03-25
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
再这两个语句之间加一个显式的回收

System.GC.Collect();

一般来讲这是可以实现的。

除非你的程序中本身就有两个同名进程。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc91b32
2009-03-25 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
有重名的进程,或许你Restart还没立刻结束掉该进程,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式