PDA

View Full Version : چرا از Dispose استفاده می کنیم ؟



MicroGalaxy
پنج شنبه 30 مهر 1383, 22:47 عصر
با سلام

می خواستم بدونم چرا در بعضی از کلاس ها از Dispose استفاده می کنیم ولی در بعضی نه ؟ اگه برای پاک سازی یا آزاد سازی حافظست پس Garbage Collector اینجا چه کارست ؟

Vahid_Nasiri
جمعه 01 آبان 1383, 15:08 عصر
برنامه های سی شارپ در یک محیط managed اجرا می شوند. کار این محیط ، مدیریت کردن منابع حافظه است. Garbage Collector در دات نت با استفاده از الگوریتم Mark and Compact ، تمام اشیاء مورد استفاده برنامه را یافته و منابع مورد استفاده تمامی آنهایی را که در حال استفاده نیستند ، آزاد می کند. برای آزاد سازی منابع unmanaged مانند فایلها ، استریم ها و غیره ، باید متد Dispose مربوط به اینترفیس IDisposable پیاده سازی شود.

برای مطالعه بیشتر:
http://www.codeproject.com/csharp/DestructorsInCs.asp
http://www.fawcette.com/Archives/premier/mgznarch/vbpj/2001/10oct01/ce0110/ce0110p.asp
http://www.samspublishing.com/articles/article.asp?p=101373&seqNum=13
http://www.ondotnet.com/lpt/a/1190

MicroGalaxy
جمعه 01 آبان 1383, 16:48 عصر
از کجا بفهمم یه شی رو با ید خودم با Dispose نابود کنم یا نکنم یا بهتر بگم چه طور بفهمم یه شی مدیریت شدست یا نشده ؟

Vahid_Nasiri
جمعه 01 آبان 1383, 19:30 عصر
Unmanaged resources are those resources that the CLR doesn't manage for you.

http://www.interact-sw.co.uk/iangblog/2004/06/03/unmanaged