C# 是否存在系统范围的全局列表变量

C# 是否存在系统范围的全局列表变量,c#,list,global-variables,system-variable,C#,List,Global Variables,System Variable,我有一个这样的三维列表: List-dimensionLIST=新列表() 现在,当我用用于计算的数据填充这个列表时,它将占用20GB的RAM内存 我做的计算需要10个小时。因此,我创建了一个解决方案,其中我打开了10个应用程序实例,我将工作分成10部分,这将使计算只需要1小时(我的计算机中有24个核) 现在的问题是,表单应用程序的每个实例都需要读取这个维度列表,这意味着这将占用20 GB*10=200 GB的RAM,这不是一个解决方案 我的问题是,是否有可能将这个dimensionLIST放在

我有一个这样的三维列表:
List-dimensionLIST=新列表()

现在,当我用用于计算的数据填充这个列表时,它将占用20GB的RAM内存

我做的计算需要10个小时。因此,我创建了一个解决方案,其中我打开了10个应用程序实例,我将工作分成10部分,这将使计算只需要1小时(我的计算机中有24个核)

现在的问题是,表单应用程序的每个实例都需要读取这个
维度列表
,这意味着这将占用20 GB*10=200 GB的RAM,这不是一个解决方案

我的问题是,是否有可能将这个
dimensionLIST
放在某种系统范围的全局列表变量中,所有10个实例都可以访问该变量

(需要指出的是,我不能将这个
维度列表
分成10个部分,因为每个实例实际上需要整个列表)

谢谢大家!

您可以使用

命名管道是用于通信的命名、单向或双向管道 在管道服务器和一个或多个管道客户端之间。所有实例 命名管道共享相同的管道名称,但每个实例都有自己的名称 缓冲区和句柄,并为客户机/服务器提供单独的通道 沟通。实例的使用使多个管道客户端能够 同时使用相同的命名管道。任何进程都可以通过安全检查访问命名管道,使命名管道成为相关或不相关进程之间的一种简单通信形式

或者

使用允许在进程之间共享内存的Windows


如评论中所述,可能是一个可行的选项

内存映射文件?还是其他共享内存、文件映射语义?有件事可以让你走:是的,也许吧。我听说过内存映射文件,但这对我来说真的很新鲜。我不确定这是如何工作的,如果我能在这样的记忆中列出一个
列表
?你必须重新设计你的做事方式,当然。。。但您的内存将从200GB降至20GB。。。这种魔法永远不会免费。你不能让你的应用程序多线程吗?因此,10个工作平台可以由一个应用程序完成,但同时由不同的内核完成。@RomCoo——这是个好主意。这里的更多信息:谢谢,我还会查找
命名管道
。这似乎是一个有趣的选择。