我想在一台机器上允许我的应用程序的多个进程。项目(来自本地数据库)可以在每个进程中加载,我想确保一个项目只能在我的应用程序的一个进程中打开。
因此,在打开项目之前,我想检查我要打开的项目是否已经在另一个进程中打开。
我知道这不是最佳编程实践,但在我们在数据级别实现更复杂的锁定机制之前,这只是一个临时解决方案。
我可以检测到另一个正在运行的进程,但是我可以以某种方式访问或将其转换为更适合获取我想要的信息的东西吗?
像这样的:
Process[] allProcesses = Process.GetProcessesByName("MyApp");
foreach (Process process in allProcesses)
{
var projects = process.OpenedProjects;
遇到过 .net 远程处理、WCF、IPC,但发现它们对于这个相当“简单”的任务来说是非常重量级的。