防止运行一个Mono应用程序的多个实例

时间:2019-02-11 18:51:59

标签: c# mono monodevelop

我知道如何防止在Windows上运行给定应用程序的多个实例:

Prevent multiple instances of a given app in .NET?

尽管此代码在使用Mono-develop的Linux下不起作用。它可以编译并运行,但是不起作用。如何在Linux中使用Mono阻止它?

这是我尝试过的方法,但是仅在Windows上的linux下,代码deos无法正常工作。

    static void Main()
    {
        Task.Factory.StartNew(() =>
        {
            try
            {
                var p = new NamedPipeServerStream("SomeGuid", PipeDirection.In, 1);
                Console.WriteLine("Waiting for connection");
                p.WaitForConnection();
            }
            catch
            {
                Console.WriteLine("Error another insance already running");
                Environment.Exit(1); // terminate application
            }
        });
        Thread.Sleep(1000);


        Console.WriteLine("Doing work");
        // Do work....
        Thread.Sleep(10000);            
    }

1 个答案:

答案 0 :(得分:0)

我想出了这个答案。调用此方法并为其传递唯一ID

{{1}}