我知道这个问题可能有点傻,但我是 c# 的新手,也是一般编码的新手。 我最近做了一个应用程序,我想限制它一次只能运行一个实例,这样用户就不能多次启动它。 我在 stackoverflow 上找到了 michalczerwinski 的这个答案:
[STAThread]
static void Main()
{
bool result;
var mutex = new System.Threading.Mutex(true, "UniqueAppId", out result);
if (!result)
{
MessageBox.Show("Another instance is already running.");
return;
}
Application.Run(new Form1());
GC.KeepAlive(mutex); // mutex shouldn't be released - important line
}
谁能告诉我应该在哪里添加这个?我已经尝试将它添加到 Form1.cs 中的任何地方,但它不起作用。
最佳答案
static void Main()
是主函数的名称。您应该将此添加到“Program.cs”文件(标准名称)到此特定函数(在函数中的其他所有内容之前)。
释放资源是一种很好的做法。因此,最好在函数末尾添加 mutex.Dispose();
或 using (mutex) { }
(不是两者,只是这些选项之一) .
关于c# - c#中应用程序的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617940/