如何仅将应用程序的单个实例作为Windows服务或C#中的可执行文件运行?

时间:2018-08-01 13:17:31

标签: c# windows service console-application mutex

我创建了一个c#服务,可以从控制台作为独立的(控制台)应用程序运行,也可以作为Windows服务运行。我想停止同时运行这两个文件(独立的exe和Windows服务)。如果我已经从控制台作为独立应用程序启动了此应用程序,那么我想停止将该应用程序作为服务启动;或者,如果我已经将该应用程序声明为服务,则希望从控制台启动该应用程序。我已经尝试了一些可用的方法(Mutex方法),但是它们仅用于“两次停止启动同一应用程序(2个独立应用程序)”,而不适用于“独立Windows应用程序和Windows服务”。

allOptions = []
for mi1 in menu_1:
    for mi2 in menu_2:
        for mi3 in menu_3:
            allOptions.append( (mi1, mi2, mi3) )

任何人都可以帮助我如何实现这一目标。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

//This has worked finally, but at the cost of @IInspectable comments.
if (System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Count() > 1) System.Diagnostics.Process.GetCurrentProcess().Kill();