[英]Why does Marshal.PtrToStructure with nested arrays throw an ExecutionEngineException?
我正在嘗試將byte []轉換為包含包含數組的結構的數組的結構。
像這樣:
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct Util_VersionType
{
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.LPStr, SizeConst = 5000)]
public DataItemsString[] Data;
}
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct DataItemsString {
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 10)]
public System.Byte[] Value;
public System.UInt32 Validity;
}
我使用Marshal.PtrToStructure
有時沒有問題,但是在大約100次嘗試中,CLR引發了不可捕獲的ExecutionEngineException。
請幫忙。 我迷路了。
看起來此Exception與上述結構的封送處理沒有直接關系。
請查看您的代碼,以便通過另一個線程交叉訪問同一實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.