簡體   English   中英

為什么帶有嵌套數組的Marshal.PtrToStructure拋出ExecutionEngineException?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM