c# - 如何检测我的程序是否在 Windows 中运行?

标签 c# windows console

我正在编写一个 C# 控制台应用程序。它将作为计划任务运行。

我希望我的 EXE 在发现另一个进程仍在运行之前的计划任务执行时快速退出。

我似乎无法找到让我的应用程序检测事件进程的方法,从而知道它是否已经在运行。

感谢任何想法。 彼得

最佳答案

一种非常常见的技术是在进程启动时创建互斥体。如果您无法创建互斥量,则表示有另一个实例正在运行。

这是 Nathan 链接中的示例:

//Declare a static Mutex in the main form or class...
private static Mutex _AppMutex = new Mutex(false, "MYAPP");

// Check the mutex before starting up another possible instance
[STAThread]
static void Main(string[] args) 
{
  if (MyForm._AppMutex.WaitOne(0, false))
  {
    Application.Run(new MyForm());
  }
  else
  {
    MessageBox.Show("Application Already Running");
  }
  Application.Exit();
}

关于c# - 如何检测我的程序是否在 Windows 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957742/

相关文章:

c# - 如何调试 NancyFx 中的 View 错误?

windows - 当互联网仍然连接时,Chrome/IE 运行 20 分钟后出现 ERR_CONNECTION_FAILED

PHP:执行怪异

c# - CultureInfo 的实例(来自同一文化)根据操作系统而变化

c# - 如何判断一个对象是文件还是文件夹

c# - 反射不触发参数化构造函数c#

windows - 在不启动新CMD的情况下在bat中启动exe进程

windows - 通过 Windows 批处理从 svnlook 获取日志消息

.net - SqlDataAdapter 未更新

html - cURL 窗口不显示 html 响应