簡體   English   中英

當沒有內存在C#中構造OutOfMemoryException時會發生什么?

[英]What happens when there is no memory to construct an OutOfMemoryException in C#?

我發現System.Exception需要很多內存分配(很多String ,甚至IDictionary )。 當沒有足夠的內存來構造OutOfMemoryException時會發生什么?

搜索之后,我發現了一個類似的問題: 如果沒有足夠的內存來引發OutOfMemoryError,會發生什么? CLR會那樣嗎?

正如您(Cu2s)所提到的,框架預先分配了一些對象。 內存不足並不是唯一的一個。 當然也需要StackOverflow。

在此處查看源

還有這篇博客文章

您可以自己在WinDbg或其他工具中看到它。

例如,當我運行此代碼時:

static void Main()
{
    Console.Read();
}

我在堆中看到以下內容:

在此處輸入圖片說明

我找到了coreclr的源代碼。 似乎CLR預分配了一些異常類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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