如何让我的 WPF 应用程序的多个实例使用相同的数据?

Posted

技术标签:

【中文标题】如何让我的 WPF 应用程序的多个实例使用相同的数据?【英文标题】:How to make multiple instances of my WPF application use the same data? 【发布时间】:2018-02-15 10:00:14 【问题描述】:

我有一个 WPF 应用程序,它通过绑定的 GUI 元素生成和使用数据(如统计数据),这些元素在某些情况下保存并加载到硬盘上。

我希望用户能够同时运行应用程序的多个实例。 因此,我希望此应用程序的所有实例都使用相同的数据处理类,以便能够查看我的应用程序所有实例中数据的任何更改,并防止覆盖文件或使用旧数据。

我知道我的可执行文件的每次启动都会默认启动另一个进程。我听说过 AppDomain,但对它们几乎一无所知,我不确定这是否是正确的方向。

最好的方法是什么?

编辑: 人们似乎忽略了我想要的东西,并试图将我推向其他方向。 所以让我澄清一下,我必须能够使用多个实例,因为在我的应用程序中,用户可以选择生成的数据所依赖的不同配置文件,并且我的整个 GUI 都建立在它之上。不得为每个配置文件单独存储生成的统计信息和日志记录数据。

【问题讨论】:

您可能应该使用数据库。同步文件访问可能是一个问题;即,如果一个应用程序写入并创建一个锁,另一个必须等​​待。但是,您可以使用 FileWatcher 在其他实例发生更改时收到通知。 您遇到了什么问题 - 什么不起作用? 您为什么不使用两个应用程序、选项卡或任何其他控件来两次显示数据?您可能会解决同步文件等大量问题。 @SlapY 不幸的是,不能选择使用数据库 最好的办法还是使用数据库。基于文件的,比如 SQLite,就可以了。这样,您的驱动器上仍然只有一个文件,但您可以可靠地从多个进程读取和写入该文件。 【参考方案1】:

您可以使用 WCF 服务实现此目的。有很多关于这方面的信息。也许从这里开始:https://en.wikipedia.org/wiki/WCF_Data_Services

【讨论】:

谢谢,我会看看这个

以上是关于如何让我的 WPF 应用程序的多个实例使用相同的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在MVVM中使用相同的ViewModel拥有多个视图?

如何让我的 WPF 用户控件的依赖属性更新我的视图模型?

使用 Spring Cloud Bus Kafka 的多个实例

处理 WPF 应用程序中多个视图之间的导航

如何将标签绑定到WPF中相同窗口类中找到的字段?

如何配置多个异常处理程序