【发布时间】:2013-10-29 14:38:20
【问题描述】:
我有两个项目 A 和 B。其中项目 A 是系统托盘应用程序,项目 B 是主应用程序。 当用户更改项目 B 的设置时,项目 A 需要自行更新。 如何将发生的更改通知项目 A?
我曾尝试使用全局事件,但这需要在应用 B 启动时创建应用 A 的新实例。
【问题讨论】:
-
你没有提供太多细节。应用程序是否都在同一台机器上运行?设置是保存在内存中还是存储在磁盘上的文件中?如果是后者,即存储在磁盘上的文件中,那么编写一点代码来轮询文件并每隔 x 秒或分钟检查一次更改等将是微不足道的。
-
@Andrew,我认为假设它们在同一台机器上运行是安全的 :)
-
如果设置存储在磁盘上,您可以使用
FileSystemWatcher来监控文件的更改。 -
如果
A是用 VB.Net 编写的,那么您可以在 Project --> Properties 中检查“Make single instance application”,然后使用 Process.Start() 再次“运行”它并一个参数。现有实例将收到一个 Application.StartupNextInstance() 事件,您可以在该事件中使该实例执行某些操作。这是否有用取决于需要通过命令行参数传递哪些信息,或者新数据是否位于公共位置(数据库?)。如果您只需要“通知”它做某事,那么您可以发送一个简单的字符串或数字代码。 -
两个应用程序在同一台机器上运行,并且设置保存在一个文本文件中。
标签: c# vb.net multi-project