对于那些想要从代码中检查实例的人,您可以像这样使用命名互斥锁
const string mutexName = @"Global\appName";
var mutex = new Mutex(true, mutexName, out var createdNew);
if (!createdNew)
{
Console.WriteLine(mutexName + " is already running! Exiting the application.");
return;
}
Run Code Online (Sandbox Code Playgroud)
确保您的互斥锁名称以"Global\".
我终于使用了一个可用于 Raspbian 的小工具:flock
在我的 crontab 配置文件中,我放置了以下内容:
flock -n /tmp/importer.lock dotnet ~/Desktop/Importer/Plugin.Clm.Importer.Console.dll
Run Code Online (Sandbox Code Playgroud)
看来flock在运行时写入了一个锁定文件,并执行了命令。如果再次执行,并且锁定文件在那里,它就会失败。当它完成时,它释放该文件,允许再次调用它。
简而言之:它充当信号量:)
| 归档时间: |
|
| 查看次数: |
2504 次 |
| 最近记录: |