|
|
1
6
您可以使用互斥体。
|
|
|
2
0
你可以使用
|
|
|
3
0
通常,命名的互斥效果最好。以下是指向en的链接示例: http://www.iridescence.no/post/CreatingaSingleInstanceApplicationinC.aspx |
|
|
4
0
我要看你用的技术。有很多解决方案,一些更适合WPF,一些适用于WinForms:
有关WindowsFormsApplications Base的更多信息:
有关互斥和检查进程的详细信息:
我不会使用一个文件,它很容易出错,即使它不是应用程序的关键部分,没有文件访问权也可能导致程序中出现异常。 |
|
|
5
0
有几种方法可以做到这一点,它们都有各自的优点和缺点,谷歌会给你很多关于它的讨论。 你描述的方法有你提到的弱点。此外,还需要考虑希望实例具有多大的唯一性:
我有一个类,可以用来强制Windows窗体应用程序的每个WindowsStation使用一个实例。基本上,它使用p/invoke在启动期间执行以下操作,以防止使用互斥体的竞争条件:
在我的用例中,这个解决方案比简单地在进程的生命周期中保持互斥要好,因为如果用户启动了第二个实例,它提供了激活前一个实例的方法,而不仅仅是退出。使用getprop/setprop可以在不依赖进程名称的情况下识别进程实例。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |