我想确保我的项目中安装更新的互斥。
该项目是多实例意味着可以打开一个实例而不关闭其他打开的实例。有一个称为installUpdates()
的功能,它安装可用更新。由于有几个实例,因此只有其中一个需要安装更新。我想确保只有一个实例会安装更新。
我正在将一个全局变量noOfInstances
(信号量)初始化为0
。一旦打开一个新实例,变量就会增加1.如果有4个打开的实例,则noOfInstances
的值将为4.一旦实例关闭,值将减少1.为了安装我写的更新: -如何在C#中跟踪应用程序的打开实例
if(noOfInstances == 1)
{
InstallUpdates();
}
现在我的问题是,如何以编程方式追踪有打开我的项目的一个实例?每个实例可能都有一些我无法识别的独特Id。我正在使用Windows环境来开发我的C#应用程序。
您可以获取打开的进程并在其中搜索进程名称。 – Writwick
我不确定这里的信号量是否可用。如果您的应用程序将从任务管理器关闭,会怎样?柜台会减少吗? – 6opuc
@ 6opuc是的,在这种情况下,柜台也应该减少。 – Jaguar