错误:如果应用程序已在运行,则检查互斥锁

时间:2014-01-31 14:49:03

标签: c# xaml mutex show

嘿伙计们我遇到了以下问题:如果应用程序已经运行,我会声明互斥锁检查。如果我的项目中需要的文件丢失,则会出现一条错误消息和一个方法,它在InitializeComponent()之前关闭应用程序。每次丢失文件时,由于以下行而出现错误:

W.Show();

以下是我到目前为止所做的事情:

Startup="Application_Startup">

public void Application_Startup(object sender, StartupEventArgs e)
    {
        bool Absicherung;
        Mutex Mutex = new Mutex(true, this.GetType().GUID.ToString(), out Absicherung);

        if (Absicherung)
        {
            Window W = new MainWindow();
            W.Closed += (sender2, args) => Mutex.Close(); ;
            W.Show();
        }
        else
        {
            MessageBox.Show("Die Anwendung läuft bereits. Eine mehrfache Ausführung dieser ist nicht vorgesehen.", "Hinweis: Anwendung läuft bereits", MessageBoxButton.OK, MessageBoxImage.Information);
            Mutex.Close();
            Application.Current.Shutdown();
        }
    }

如何解决此问题?请你帮助我好吗?提前谢谢。

编辑:问题已解决。解决方案:使用this.Close()关闭应用程序是错误的方法 - 它使用Application.Current.Shutdown(); - > 〜关闭。

0 个答案:

没有答案