如何通过另一个设置更改设置时如何通知应用程序

时间:2013-10-29 14:38:20

标签: c# vb.net multi-project

我有两个项目A和B.其中项目A是系统托盘应用程序,项目B是主要应用程序。 当用户更改项目B的设置时,项目A需要自行更新。 如何通过发生的更改通知项目A?

我尝试使用全局事件,但这需要在应用B启动时创建应用A的新实例。

2 个答案:

答案 0 :(得分:4)

有几种选择。一种方法是创建一个名为EventWaitHandle的名称。当项目B更新设置时,它会设置事件。项目A有一个等待该事件的线程。当它收到通知时,它会从设置更新,然后重置事件。我在这里有一个简单的例子:Send message from one running console app to another

如果项目B将新设置存储在项目A可以读取它们的某个位置,那么这将有效。如果你想在内存中这样做(即项目B没有保留设置),那么你需要在两个进程之间建立某种类型的通信。您可以使用MemoryMappedFile设置共享内存,在这种情况下,您仍然需要事件通知。

或者您可以在项目B中设置一个Named Pipe服务器流,在项目A中设置一个客户端流。

答案 1 :(得分:0)

您还可以使用类似NancyFX的东西,允许自托管从每个应用程序公开HTTP端点,以允许通信而无需物理文件。

退房: https://github.com/NancyFx/Nancy/wiki/Self-Hosting-Nancy