【发布时间】:2008-12-27 21:28:20
【问题描述】:
好的,我有这个程序,我不想运行多个实例。所以我现在拥有的是它会抓取与其名称匹配的所有实例,如果有多个实例,它会退出并让用户知道它已经在另一个实例中运行。
但是,有一种特殊情况,新实例想要更改另一个实例正在执行的操作,然后它将退出。我该怎么做?
这是一个例子: 我有一个计时事件的程序。我不希望同时运行多个,因为你不能同时做两件事(对于这个应用程序)。现在假设第三方程序想要通知该线程用户正在处理其他事情,因此它再次启动应用程序。如果应用程序已经在运行,它将更新其操作,否则它将正常运行。
如何做到这一点?
这是我用来判断是否有另一个实例正在运行的:
string proc = Process.GetCurrentProcess().ProcessName;
Process[] processess = Process.GetProcessesByName(proc);
if (processess.Length > 1) {
MessageBox.Show("There is an instance of the Timer already running");
return;
}
【问题讨论】:
标签: c# multithreading process