【问题标题】:How to check another instance of application is running using the same resource如何检查另一个应用程序实例是否正在使用相同的资源运行
【发布时间】:2020-05-13 01:43:53
【问题描述】:

我想找到另一个应用程序实例正在为相同的资源运行。我的应用程序支持多个实例。我想限制每个资源一个实例。

应用程序的可执行文件名为 COMTest.exe 程序集标题是 COMPortTest 。任务管理器显示程序集标题。 应用程序标题可以是 COMPort1, COMPort2...COMPortX 。任务管理器还会显示应用程序标题。

假设一个实例正在为 COM1 端口运行并且用户启动另一个实例并选择相同的 COM1 端口,我应该发布错误消息。

我想检查正在运行的应用程序的应用程序标题。我该怎么做。

谢谢

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    这是其中一种情况,其中最可靠的方法可能是尝试处理异常。

    正在使用的 COM 端口已经完全是 exogenous to your application。即使您可以在 您的 程序的实例之间进行通信,如果某个 其他 程序正在使用这些端口怎么办?

    你无法避免它。你不能明智地测试它。这不是致命的。它显然是外生的。因此,无论抛出什么异常都应该由您的 COM 访问代码处理。您将适当地使用某种形式的循环或函数调用,并且可以在该循环或函数内完成此处理。

    另一种方法是让实际测试由守护程序完成。您可以通过 TaskSheduler 启动它,您会为每个用户获得一个 GUI,并且各方只需通过 any IPC approach you like 进行通信。当然,您仍然必须使用这些端口处理其他人的程序,因此您不会真正获得任何收益。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      相关资源
      最近更新 更多