我正在研究一种每秒需要大约20兆的数据的嵌入式系统.我的低级采集,控制和处理层将其中的大部分转换为少数几个重要值,但它也可以帮助最终用户查看未处理数据的窗口.
我正在使用mod-mono在C#中使用ASP.NET前端.我希望ASP.NET页面的服务器端部分能够轻松地请求最后半秒左右的数据.C++代码具有实时约束,因此我不能使用消息传递来响应 - 它可能很容易被太多客户端或快速刷新的人所困扰.我希望它能够将数据放置在任何数量的C#读者可以根据需要访问它的地方.
我正在想象一个共享内存区域,其中包含至少16或32MB数据的滚动缓冲区.C++代码不断更新它,C#代码可以随时查看它.有办法处理这个吗?我在使用内存映射文件时发现的所有信息似乎都集中在分支一个孩子,而不是让两个不相关的进程将它用于IPC - 它是否必须在C#应用程序看到之前到达磁盘(或fs缓存等)它,或两个程序的内存映射实际上使它们共享相同的页面?
有没有办法在C#中访问POSIX共享内存对象?