如何检查应用程序的另一个实例是否正在使用同一资源运行



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

应用程序可执行文件名称为 COMTest.exe 程序集标题是 比较测试 。任务管理器显示程序集标题。 应用程序标题可以是 COMPort1、COMPort2...康普特X .任务管理器还显示应用程序标题。

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

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

谢谢

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

正在使用的 COM 端口完全是应用程序的外生端口。即使您可以在程序的实例之间进行通信,如果其他程序正在使用这些端口怎么办?

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

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

最新更新