跨多个应用程序实例共享列表

3

我希望有一个List<int>,可以被多个应用程序实例访问。目前,我可以使用全局互斥体来欺骗,但是在10K个整数之后这几乎不起作用。如何让程序的多个实例共享一个列表?


跨应用程序读/写还是只读? - Jamiec
1
你真的是指你的应用程序实例而不是应用程序内部的线程,对吗?为什么不使用队列呢? - Rafa
是的,我确实指的是实例。那么我该如何使用队列呢?我正在尝试避免使用数据库,否则我将使用Redis构建一些东西。 - user34537
1个回答

2
一个简单的方法是将这些数据放在一个自定义的Windows服务中。在这个服务中托管您想要共享的数据,并使用任何类型的IPC提供对这些数据的访问。最简单的方法是使用WCF。
另一种方法可能是只有一个应用程序实例。不要在您的应用程序中只有一个窗体,而是将多个窗体作为单独的“伪”实例进行管理。当再次启动应用程序时,请检查应用程序是否已经启动并触发一个消息到该应用程序。
最后,正如Raja所建议的那样,使用队列在应用程序之间共享数据。但这需要更多关于列表何时以及如何填充的信息。

我从未使用过Windows服务或WCF。它是否非常容易?本质上,我将向列表或集合添加int或long(也许是string,但我怀疑),我真的只需要知道id是否在集合中。我可能会使用Redis,但我试图保持简单。 - user34537
也许这个问题可以帮到你?有很多种方法可以使应用程序相互通信,包括WCF、Remoting、Sockets等。WCF并不是很复杂,但你需要一些学习曲线才能让它正常工作。 - Steve B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接