PDA

View Full Version : آزاد سازی حافظه



rezaiy.ali
پنج شنبه 22 فروردین 1387, 09:29 صبح
با سلام
من یه فرم اصلی دارم داخل ان چند فرم دیگر لود میشه
زمانی که فرم اصلی را می بندم(از برنامه خارج می شم) حافظه رها سازی میشه
اما زمانی که فرمها دیگه را در فرم اصلی می بندم حافظه رها سازی نمیشه
البته در زمانی که فرم ها را می بندم از دستور


this.Dispose();

استفاده می کنم ولی تاثیر ندارد
لطفا رهنمایی بفرمایید
با تشکر

razavi_university
پنج شنبه 22 فروردین 1387, 11:01 صبح
دقیقا همین سوال قبلا پرسیده شده است. لطفا قبل از ایجاد تاپیک جدید جستجو کنید
آزاد کردن RAM بعد از بستن فرم (http://barnamenevis.org/forum/showthread.php?t=89266)

علیرضا مداح
پنج شنبه 22 فروردین 1387, 11:55 صبح
سلام ،
این مسئله بسته به عملیات و آبجت هایی که شما در آن فرم از آنها استفاده میکنید متغیر است ، به شما پیشنهاد میکنم از ابزار Redgate ANTS Profiler (http://www.red-gate.com/Products/ants_profiler/index.htm) برای یافتن Memory Leaks و بررسی دقیقتر مسئله استفاده نمایید.

rezaiy.ali
یک شنبه 25 فروردین 1387, 08:06 صبح
با تشکر از دوستان
ولی هیچ یک از راه حل های کد در تاپیک بود نتونست به من کمک کنه
من زمانی که یک فرم را نمایش می دهم
از این دستور استفاده می کنم


Notation_Cheque NC = newNotation_Cheque();
NC.ShowDialog();

زمانی که فرم اصلی را می بندم کلیه حافظه برنامه آزاد میشه
لطفا راهنمایی بفرمایید

gdevnb
یک شنبه 25 فروردین 1387, 08:19 صبح
اینو امتحان کنید

Notation_Cheque NC = new Notation_Cheque();
NC.ShowDialog();
NC.Dispose();در ضمن با دستور

GC.RemoveMemoryPressure(bytesAllocated);می تونید به صورت مدیریت نشده با حافظه کار کنید(آزادسازی)
ولی در این مورد نمی دونم بتونید ازش استفاده کنید چون ورودی long می گیره

موفق باشید.

rezaiy.ali
یک شنبه 25 فروردین 1387, 09:10 صبح
چطور میتونم از GC.RemoveMemoryPressure(bytesAllocated); استفاده کنم
این bytesAllocated چه مقداری می گیره؟