共用方式為


gcUnmanagedToManaged MDA

注意

本文專屬於 .NET Framework。 它不適用於較新的 .NET 實作,包括 .NET 6 和更新版本。

每當執行緒從 Unmanaged 轉換到 Managed 程式碼時,gcUnmanagedToManaged Managed 偵錯助理 (MDA) 會造成記憶體回收。

徵兆

使用 COM 和平台叫用執行 Unmanaged 使用者元件的應用程式在 CLR 中造成不具決定性的存取違規。

原因

如果應用程式正在執行 Unmanaged 使用者元件,那麼這些元件可能已損毀記憶體回收的堆積。 在 CLR 中,當記憶體回收行程嘗試查核物件圖形時,這會造成存取違規。

解決方法

在每次 Managed 轉換之前,啟用此助理會減少從 Unmanaged 元件損毀記憶體回收的堆積到強制執行記憶體回收而發生存取違規的間隔時間。

對執行階段的影響

每當執行緒從 Unmanaged 轉換到 Managed 程式碼時,會造成記憶體回收。

輸出

此 MDA 不會產生輸出。

組態

<mdaConfig>
  <assistants>
    <gcUnmanagedToManaged/>
  </assistants>
</mdaConfig>

另請參閱