compact-framework - .net 紧凑型框架 : Avoid program being started twice concurrently

标签 compact-framework

如何避免用户两次启动同一个程序?
当前的实现尝试使用“FindWindow”来做到这一点,但由于程序打开第一个窗口需要一些时间,用户经常设法启动程序两次,导致错误等。

最佳答案

您必须使用命名的互斥锁,以便它可以跨进程使用。无论出于何种(愚蠢的)原因,CF 设计人员都认为 CF 开发人员永远不需要这样的东西,所以你有两个选择:

  • P/Invoke CreateMutex 和相关的清理工具
  • 使用已经编写好的实现,如 SDF 的 NamedMutex class (它只是为你做 #1)来自 OpenNETCF。

  • 实际上还有第三种选择。自卫队的 Application2 class有一对Run method overloads为您包装此逻辑并强制执行应用程序单例行为。

    关于compact-framework - .net 紧凑型框架 : Avoid program being started twice concurrently,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867050/

    相关文章:

    c# - ProtoBuf-Net 和 Compact Framework 出现 "Invalid field in source data: 0"错误

    c# - 如何从另一个处理程序调用按钮单击事件处理程序? (C# )

    c# - 在 WindowsCE 上设置输入面板位置

    c# - .NET Compact Framework 2.0 中的 Alpha 混合颜色

    .net - 如何在 ASP.NET Web 应用程序中为 Windows Mobile 创建 SQL Compact 3.5 数据库?

    .net - .NET 紧凑框架的 GPS 库

    c# - 是否有可能完全防止 .NET Compact Framework 上的多个实例?

    c# - 当 dotpeek 仅使用 "//Stub method (' ret 指令填充方法时,这意味着什么)”

    c# - 应用程序在 15 分钟后崩溃,WCE 6.0 CF 3.5 Motorola MC3190

    c# - 在紧凑型和完整 .net 框架之间切换编译?