我的 ASP.Net 应用程序中有一些巨大的原始字节数据数组 (1 MB * 100)。他们需要非常频繁地向多个用户广播。
一个线程在后台处理数据并不时更新它们。
您能否就在它们之间共享缓冲区的最佳选择给我建议?
我的 ASP.Net 应用程序中有一些巨大的原始字节数据数组 (1 MB * 100)。他们需要非常频繁地向多个用户广播。
一个线程在后台处理数据并不时更新它们。
您能否就在它们之间共享缓冲区的最佳选择给我建议?
这听起来像是内存映射文件的好案例
内存映射文件包含虚拟内存中文件的内容。文件和内存空间之间的这种映射使包括多个进程的应用程序能够通过直接读取和写入内存来修改文件。从 .NET Framework 4 开始,您可以使用托管代码访问内存映射文件,就像本机 Windows 函数访问内存映射文件一样
http://msdn.microsoft.com/en-us/library/dd997372(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/vstudio/system.io.memorymappedfiles.memorymappedfile
线程处理数据
那是一个 ASP.Net 线程吗?我不会在 IIS 的上下文中执行那种类型的任务(为什么不)。相反,我建议共享内存由 IIS 之外的单独进程管理,例如 Windows 服务。
内存映射文件机制非常适合更新数据的 Windows 服务,以及根据需要访问数据的单个 ASP.Net 工作线程。