gpt4 book ai didi

c# - C# Windows 应用程序中的多实例限制

转载 作者:太空狗 更新时间:2023-10-29 21:39:21 24 4
gpt4 key购买 nike

我有一个使用 INI 文件启动的应用程序。具有不同 INI 文件配置的同一应用程序的多个实例。

这也导致可以启动具有相同 INI 文件的多个实例。我只想限制这种情况,但必须允许具有不同 INI 文件的多个实例。实现这一目标的最佳方法是什么?

最佳答案

使用基于 ini 文件的名称(文件名或内容的 MD5)创建一个 Mutex。如果 Mutex 已经存在,则意味着应用程序已经使用指定的 ini 文件启动。

public static string CalculateMD5Hash(string input)
{
using (MD5 md5 = System.Security.Cryptography.MD5.Create())
{
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);

StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}

return sb.ToString();
}
}

static void Main(string[] args)
{
using (Mutex mutex = new Mutex(true, CalculateMD5Hash(args[0])))
{
if (mutex.WaitOne(100))
{
Console.WriteLine("First instance");
Console.ReadKey();
}
else
{
Console.WriteLine("Second instance");
Console.ReadKey();
}


}
}

关于c# - C# Windows 应用程序中的多实例限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23150242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com