第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

c# 調(diào)用 GC.Collect 的正確方法

c# 調(diào)用 GC.Collect 的正確方法

C#
慕雪6442864 2023-08-20 15:51:03
我有一個(gè)執(zhí)行復(fù)雜處理并創(chuàng)建太多對(duì)象的應(yīng)用程序,我想在處理完成后釋放內(nèi)存。我目前正在我的應(yīng)用程序中的 try catch 塊中調(diào)用 GC.collect,并且// 這個(gè)函數(shù)在靜態(tài)類(lèi)中public static void Collect(){    try    {        GC.Collect    }    catch(Exception)    {        //    }}這是調(diào)用垃圾收集器的正確方法嗎?我應(yīng)該直接調(diào)用它嗎?什么是最佳使用實(shí)踐?
查看完整描述

2 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

C# 是一種垃圾收集語(yǔ)言。垃圾收集器為您分配資源,并在不再使用時(shí)回收它們。

GC.Collect()除非你有充分的理由,否則你根本不應(yīng)該調(diào)用- 垃圾收集器很聰明,并且只會(huì)在它認(rèn)為需要時(shí)運(yùn)行。

這可以由多種情況觸發(fā),如文檔中所示:

當(dāng)滿(mǎn)足以下條件之一時(shí),就會(huì)發(fā)生垃圾收集:

  • 系統(tǒng)物理內(nèi)存不足。這是通過(guò)操作系統(tǒng)發(fā)出的內(nèi)存不足通知或主機(jī)指示的內(nèi)存不足來(lái)檢測(cè)的。

  • 托管堆上分配的對(duì)象使用的內(nèi)存超過(guò)了可接受的閾值。該閾值隨著進(jìn)程的運(yùn)行而不斷調(diào)整。

  • 調(diào)用 GC.Collect 方法。在幾乎所有情況下,您不必調(diào)用此方法,因?yàn)槔占鬟B續(xù)運(yùn)行。此方法主要用于特殊情況和測(cè)試。

重要的是,垃圾收集可以導(dǎo)致所有正在運(yùn)行的線程暫停,以便它可以分析堆中的所有對(duì)象以查看它們是否仍然需要。這需要時(shí)間,如果您在不需要時(shí)頻繁運(yùn)行它,可能會(huì)對(duì)程序的性能產(chǎn)生負(fù)面影響。


查看完整回答
反對(duì) 回復(fù) 2023-08-20
?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

您不需要將其包裝在public static方法中,只需在需要時(shí)調(diào)用它即可:

//?Time?to?release?memory!
GC.Collect();
查看完整回答
反對(duì) 回復(fù) 2023-08-20
  • 2 回答
  • 0 關(guān)注
  • 561 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)