我正在编写一个程序来格式化和聚合数据,使其可用于电力自动化处理。然而,我刚刚注意到我的一个应用程序能够同时运行多次,即使我使用互斥体来抑制这种行为。
这是代码:
//Some code
string mutexName = "MutexName";
bool newC;
Mutex mutex = new(true, mutexName, out newC);
if (!newC)
{
return;
}
//Some code
我正在使用Windows任务计划程序每天自动启动它以在崩溃时重新启动它。起初它运行良好并且没有引起任何问题。但从昨天开始,它突然开始忽略运行两次的应用程序。电脑充当服务器并不断运行。
提前致谢!
好的,找到了一个方法。我正在保存应用程序的状态以在我必须构建的网站上显示它,所以现在我只需检查该状态并终止该任务(如果它具有已打开状态)。
这里是代码(有点长,因为它包含一个配置读取器,用于加载不同的文件路径,包含状态):
启动时:
ConfigReader configReader = new("filePath");
if (!checkTurnedOff(configReader))
{
return;
}
检查关闭():
bool checkTurnedOff(ConfigReader configReader)
{
if (configReader.GetFileData("running").Split('=')[3].Contains("false"))
{
return true;
}
return false;
}
获取文件数据():
public string GetFileData(string key)
{
return File.ReadAllText(GetValue(key));
}