相关疑难解决方法(0)

创建单实例WPF应用程序的正确方法是什么?

在.NET(而不是Windows窗体或控制台)下使用C#和WPF ,创建只能作为单个实例运行的应用程序的正确方法是什么?

我知道这与一些叫做互斥的神秘事物有关,我很少能找到一个不愿意停下来解释其中一个是什么的人.

代码还需要通知已经运行的实例用户尝试启动第二个,并且如果存在任何命令行参数,也可以传递.

.net c# wpf mutex

631
推荐指数
16
解决办法
19万
查看次数

是否使用Mutex来防止同一程序的多个实例运行安全?

我正在使用此代码阻止我的程序的第二个实例同时运行,是否安全?

Mutex appSingleton = new System.Threading.Mutex(false, "MyAppSingleInstnceMutx");
if (appSingleton.WaitOne(0, false)) {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MainForm());
    appSingleton.Close();
} else {
    MessageBox.Show("Sorry, only one instance of MyApp is allowed.");
}
Run Code Online (Sandbox Code Playgroud)

我担心如果有什么东西抛出一个异常并且应用程序崩溃了Mutex仍然会被保留.真的吗?

c# mutex single-instance winforms

45
推荐指数
4
解决办法
5万
查看次数

.NET 4单个应用程序实例

我经常编写只支持一个实例的.net应用程序.以前我使用.net-remoting和现在的WCF来检测我的应用程序的实例是否正在运行并将焦点放在此实例上.

我的问题是,如果有.net4可用于实现单实例应用程序的更好的解决方案(或者通常有更好的解决方案可用,因为在应用程序的最开始加载WCF或远程处理程序集会对性能产生不良影响)

更新

谢谢你的所有帖子.我最初的问题的答案似乎是" 不,在.net 4中实现单实例应用程序没有什么新东西 ".

感谢所有附加信息,我将更改当前项目以使用Mutex提供所需的功能.我接受了鲍勃摩尔的答案,因为它附有最多的信息,但感谢所有发布有用信息的人.

.net

8
推荐指数
1
解决办法
4362
查看次数

标签 统计

.net ×2

c# ×2

mutex ×2

single-instance ×1

winforms ×1

wpf ×1