如何直接在C#中将托管流读入uint数组?
我在流中有一些实际上是uint格式的数据。 System.IO.Stream只允许我将内容读出到字节数组,但我不想读取字节,然后将它们转换为字节数组长度的1/4的uint数组。我想直接将它读入uint数组的内存中,以便节省时间。
如果它处于非托管C ++中,那就太容易了。只需将指针发送到uint数组即可完成。但在C#中它看起来并不那么简单。我正在尝试生成一个与另一个uint数组具有相同内存地址的字节数组,然后将该字节数组作为Stream.Read()的参数发送,这样当Stream.Read()写入字节数组时,内容就是在uint数组中也是如此。但是我看过Marshall课程,到目前为止还找不到解决这个问题的方法。有任何想法吗?
没有找到相关结果
已邀请:
2 个回复
枫湃揩乾纲
请注意,某些流实现不支持位置和/或长度属性。
暑袜眠退
关键字在C#中使用相同的技术 - 这可以让你弄乱指针并按原样访问内存。 当然,根据你的数据,我建议只是以更慢效率的方式做到这一点 - 不安全的代码并不是那么漂亮 - 你需要额外的安全性和安全性。时间来测试。