如何在c#中的另一个正在运行的应用程序中查询变量?

如何在c#中的另一个正在运行的应用程序中查询变量?,c#,shared-memory,C#,Shared Memory,我有一个应用程序,当启动时,它会检查自身的重复进程 这一部分我是对的,但我需要的是检查原始运行过程中的状态变量,以便运行一些逻辑 那么:如何使变量(例如bool)对其他应用程序公开,以便它们可以查询它?最简单的方法是:创建一个文件,并在其中写入内容 如果使用更高级且正确完成后更健壮,则可以使用命名管道仅在本地计算机上设置某些通信通道。如果使用检查另一个进程是否正在运行(您应该)您可以使用另一个互斥体,其锁定状态将是您正在查找的布尔标志。执行此操作的标准方法是使用Windows API创建和锁定互

我有一个应用程序,当启动时,它会检查自身的重复进程

这一部分我是对的,但我需要的是检查原始运行过程中的状态变量,以便运行一些逻辑


那么:如何使变量(例如bool)对其他应用程序公开,以便它们可以查询它?

最简单的方法是:创建一个文件,并在其中写入内容


如果使用更高级且正确完成后更健壮,则可以使用命名管道仅在本地计算机上设置某些通信通道。

如果使用检查另一个进程是否正在运行(您应该)您可以使用另一个互斥体,其锁定状态将是您正在查找的布尔标志。

执行此操作的标准方法是使用Windows API创建和锁定互斥体。第一个打开的应用程序将创建并锁定互斥锁。应用程序的任何后续执行都将无法获取它,然后可以关闭。

有很多方法可以做到这一点。一种非常重要的方法是从文件读/写。旧的win32方式是使用。更多的.NET方式是使用远程处理或WCF和

.NET4也获得了对的支持

下面是一篇非常全面的文章,介绍了几种不同的方法,包括对.NET4之外的内存映射文件的支持