我正在开发一个嵌入式系统,每秒获取约20兆字节的数据。我的底层采集、控制和处理层将大部分数据转换为一些重要的值,但对于最终用户来说,查看未经处理的数据窗口也是有用的。
我正在使用C#和mod-mono开发ASP.NET前端。我希望ASP.NET页面的服务器端能够轻松地请求最近半秒钟左右的数据。由于C++代码具有实时约束,因此我不能使用消息传递来响应请求-它可能会被太多客户端或者快速刷新的操作所拖累。我希望能够将数据放置到某个地方,以便任意数量的C#读取器可以根据需要访问它。
我设想一个共享内存区域,其中包含最新的16或32MB数据的滚动缓冲区。C++代码不断更新它,而C#代码可以随时查看它。有没有办法处理这个问题?所有关于使用内存映射文件的信息似乎都集中在派生子进程上,而不是让两个无关的进程用它进行IPC-它是否必须在C#应用程序可以看到之前击中磁盘(或fs缓存等),还是两个程序之间的内存映射实际上使它们共享相同的页面?
有没有办法在C#中访问POSIX共享内存对象?
我正在使用C#和mod-mono开发ASP.NET前端。我希望ASP.NET页面的服务器端能够轻松地请求最近半秒钟左右的数据。由于C++代码具有实时约束,因此我不能使用消息传递来响应请求-它可能会被太多客户端或者快速刷新的操作所拖累。我希望能够将数据放置到某个地方,以便任意数量的C#读取器可以根据需要访问它。
我设想一个共享内存区域,其中包含最新的16或32MB数据的滚动缓冲区。C++代码不断更新它,而C#代码可以随时查看它。有没有办法处理这个问题?所有关于使用内存映射文件的信息似乎都集中在派生子进程上,而不是让两个无关的进程用它进行IPC-它是否必须在C#应用程序可以看到之前击中磁盘(或fs缓存等),还是两个程序之间的内存映射实际上使它们共享相同的页面?
有没有办法在C#中访问POSIX共享内存对象?