0
  1. C# 中的普通 winform 应用程序是否默认支持多实例?

  2. 如何防止在 WPF 应用程序中创建多个实例?

4

2 回答 2

2
  1. 是的,他们是
  2. 看到这篇msdn 文章

编辑:甚至更好:codeproject 文章

于 2013-03-13T13:51:40.613 回答
1

1-是的,您可以执行许多应用程序实例。使用一些代码,您可以避免它。

2- 在 App.xaml.cs 中,您可以覆盖一些方法并使用 Mutex :

public partial class App : Application
{
    private Mutex instanceMutex = null;

    protected override void OnStartup(StartupEventArgs e)
    {
        Boolean createdNew;
        this.instanceMutex = new Mutex(true, "MyApplication", out createdNew);
        if (!createdNew)
        {
            this.instanceMutex = null;
            Application.Current.Shutdown();
            return;
        }

        base.OnStartup(e);
    }

    protected override void OnExit(ExitEventArgs e)
    {
        if (this.instanceMutex != null)
        {
            this.instanceMutex.ReleaseMutex();
        }

        base.OnExit(e);
    }
}
于 2013-03-13T13:55:51.930 回答