我设计了一个名为StructLayout的ReceiveBuffer,在ReceiveBuffer中,我有一个非托管类型的数组来存储数据。代码如下所示。
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
public struct ReceiveBuffer
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)]
public char[] Data;
}我希望在这个结构中实现IDisposable方法,以便在不需要的时候正确地释放ReceiveBuffer。我检查了MSDN中的一些示例,但是大多数情况都是在类中而不是在struct中使用的。我不知道怎么用结构来管理它。如何在这样的结构中实现IDisposible?
发布于 2020-04-28 09:22:57
我有一个非托管类型的数组来存储数据。
不,你不知道。它是一个带有元帅指令的托管数组。
我不知道如何在struct中管理它。如何在这样的结构中实现IDisposible?
你不知道。首先,像这样的结构和一次性结构是非常可能的,因为在结构上发生了大量的复制操作。第二,整个假设有一个非托管数组是错误的。
https://stackoverflow.com/questions/61476730
复制相似问题