检查 C# 中正在运行的安装

发布于 2024-09-14 18:45:10 字数 120 浏览 3 评论 0原文

有没有办法确定 C# 中是否存在正在运行的活动安装?例如,有时如果您同时启动 2 个 MSI(或 setup.exe),其中一个会说安装已经在进行中。有没有办法在 C# 中做到这一点?例如,自重置注册表项(系统重置)或互斥锁?

Is there a way to determine if there is an active installation running in C#? For example, some times if you launch 2 MSIs (or setup.exes) at once one of them will say that there is already installation going on in progress. Is there a way to do that in C#? Say, a self-resetting registry key (that system resets) or a mutex?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

相对绾红妆 2024-09-21 18:45:10

互斥体是可行的方法。

bool isFirst;
Mutex m = new Mutex(false, "MyMutex", out isFirst);

如果 isFirst 为 false,则有另一个进程正在运行。至于名称,如果您希望跨多个会话(终端会话)进行检查,则将代码更改为类似的名称。

Mutex m = new Mutex(false, "Global\\MyMutex", out isFirst);

A mutex is the way to go.

bool isFirst;
Mutex m = new Mutex(false, "MyMutex", out isFirst);

If isFirst is false then there is another process running. As for the name if you want this to check across multiple sessions (terminal sessions) then change the code to something like.

Mutex m = new Mutex(false, "Global\\MyMutex", out isFirst);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文