C# 是否可以检查是否使用通配符创建互斥锁?

C# 是否可以检查是否使用通配符创建互斥锁?,c#,mutex,wildcard,C#,Mutex,Wildcard,例如,我的应用程序创建互斥锁,如下所示: MyApplication\\{UserName} 然后,我的更新程序(更新此应用程序)需要检查是否已创建,但它不知道用户名 我有密码: string mutexString = "MyApplication\\User1" bool isNew; var mutex = new Mutex(true, mutexString , out isNew); if(isNew) { //Run my program } 如果我知道用户名,这很好,但

例如,我的应用程序创建互斥锁,如下所示:

MyApplication\\{UserName}
然后,我的更新程序(更新此应用程序)需要检查是否已创建,但它不知道用户名

我有密码:

string mutexString = "MyApplication\\User1"
bool isNew;
var mutex = new Mutex(true, mutexString , out isNew);
if(isNew)
{
   //Run my program
}

如果我知道用户名,这很好,但我想知道这是否可以与通配符一起使用?

因此从评论中我感觉到这是不可能的,因此更好的解决方案可能是检查我实现的运行过程,如下所示:

foreach (var process in Process.GetProcesses())
{
    if (process.MainWindowTitle.IndexOf("MyApp",StringComparison.InvariantCultureIgnoreCase) >= 0)
    {
         isNew = false;
    }   
}

您希望从通配符返回什么<代码>新建互斥体创建或检索单个实例。如果有多个匹配,会发生什么?所以我不需要互斥对象。我只需要知道互斥锁是否已经创建。也许检查进程是否正在运行是一个更好的解决方案?这将是一个严重的安全漏洞。任何人都可以获得所有互斥锁并锁定所有内容。不可能使用通配符检索互斥锁。检查进程是否处于活动状态听起来是一个更好的解决方案。