可能重复:
What is the correct way to create a single instance application?
How to implement single instance per machine application?
我有一个Winform-app,它将一个参数作为参数。
static class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Gauges(args));
}
}
该程序由其他应用程序每天执行几次。
是否可以检查我的程序是否已经运行,如果可以,我可以使用带有最新参数的运行实例吗?
答案 0 :(得分:2)
您可以使用互斥锁停止运行应用程序的多个副本。这里有一篇关于使用互斥体的非常好的文章:http://sanity-free.org/143/csharp_dotnet_single_instance_application.html
至于将参数传递给已经运行的进程,您需要实现某种形式的IPC来通知正在运行的新参数实例。您可以使用许多解决方案,如套接字,命名管道等。
答案 1 :(得分:2)