内存和跨度相关类型Memory- and span-related types

  • ,用于访问连续内存区域的类型。Span 实例可由一组 类型、一个 、一个使用 stackalloc 分配的缓冲区或一个指向非托管内存的指针提供支持。由于它必须在堆栈上进行分配,因此存在诸多限制。例如,类中的字段不能是 类型,跨度类型也不能在异步操作中使用。

  • System.ReadOnlySpan, 结构的不可变版本。

  • System.Buffers.MemoryPool,它将强类型内存块从内存池分配给所有者。 实例可以通过调用 MemoryPool.Rent 从池中租用,并通过调用 将其释放回池中。

  • System.Buffers.IMemoryOwner,表示内存块的所有者并控制其生存期管理。

  • ,一个抽象基类,可用于替换 Memory 的实现,以便 可以由其他类型(如安全句柄)提供支持。MemoryManager 适用于高级方案。

备注

对于早期框架, 和 Memory<T> 在 中提供。

由于内存和跨度相关类型通常用于在处理管道中存储数据,因此开发人员在使用 Span<T>、 和相关类型时要务必遵循一套最佳做法。内存<T> 和跨度<T> 使用准则中介绍了这些最佳做法。

请参阅See also