|
在標(biāo)準(zhǔn)的Dispose模式中,提到了需要及時(shí)釋放資源,卻并沒(méi)有進(jìn)一步細(xì)說(shuō)讓引用等于null是否有必要。
有一些人認(rèn)為等于null可以幫助垃圾回收機(jī)制早點(diǎn)發(fā)現(xiàn)并標(biāo)識(shí)對(duì)象是垃圾。其他人則認(rèn)為這沒(méi)有任何幫助。是否賦值為null的問(wèn)題首先在方法的內(nèi)部被人提起。現(xiàn)在,為了更好的闡述提出的問(wèn)題,我們來(lái)撰寫一個(gè)Winform窗體應(yīng)用程序。如下:
private void button1_Click(object sender, EventArgs e)
{
Method1();
Method2();
}
private void button2_Click(object sender, EventArgs e)
{
GC.Collect();
}
private void Method1()
{
SimpleClass s = new SimpleClass("method1");
s = null;
//其它無(wú)關(guān)工作代碼(這條注釋源于回應(yīng)回復(fù)的朋友的質(zhì)疑)
}
private void Method2()
{
SimpleClass s = new SimpleClass("method2");
}
}
class SimpleClass
{
string m_text;
public SimpleClass(string text)
{
m_text = text;
}
~SimpleClass()
{
MessageBox.Show(string.Format("SimpleClass Disposed, tag:{0}", m_text));
}
}
NET技術(shù):引用類型賦值為null與加速垃圾回收,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。