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

C# 如何检查应用程序的另一个实例正在使用相同的资源运行,c#,.net,winforms,C#,.net,Winforms,我想找到应用程序的另一个实例正在为相同的资源运行。我的应用程序支持多个实例。我想限制每个资源一个实例 应用程序可执行文件名为COMTest.exe 程序集标题为COMPortTest。任务管理器显示程序集标题。 应用程序标题可以是COMPort1、COMPort2…COMPortX。任务管理器还显示应用程序标题 假设一个实例正在为COM1端口运行,并且用户启动了另一个实例并选择了相同的COM1端口,我应该发布错误消息 我想检查正在运行的应用程序的应用程序标题。我怎样才能做到这一点 谢谢这是其中一

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

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

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

我想检查正在运行的应用程序的应用程序标题。我怎样才能做到这一点


谢谢

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

正在使用的COM端口已完全关闭。即使您可以在程序实例之间进行通信,如果其他程序正在使用这些端口呢

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

另一种选择是由守护进程进行实际测试。您可以通过TaskScheduler启动它,为每个用户提供一个GUI,双方只需通过。当然,您仍然需要使用这些端口处理其他人的程序,因此您不会真正获得任何好处