PDA

View Full Version : حرفه ای: خالی نشدن حافظه موقع بستن تب



ebrahim.rayatparvar
سه شنبه 06 مرداد 1394, 21:54 عصر
سلام خدمت همه دوستای خوبم.

من تو برنامه در فرم الی یک xtraTab از کامپوننت devexpress رو دارم که با زدن هر یک از آیتم ها در منو اصلی من یک تب جدید درست میشه و UserControl مربوطه داخلش لود میشه.
حالا زمانی که این تب ها ایجاد میشن یک حافظه ای رو اشغال میکنن که با بستن تب این حافظه ها آزاد نمیشن. برای رویداد بستن تب هم کد زیر رو زدم.



private void xtraTabMain_CloseButtonClick(object sender, EventArgs e) //--- بستن تب های کنترل تب اصلی
{
var x = xtraTabMain.SelectedTabPageIndex;
ClosePageButtonEventArgs arg = e as ClosePageButtonEventArgs;
XtraTabPage tabPage = (XtraTabPage) arg.Page;
xtraTabMain.TabPages.Remove(tabPage);
//xtraTabMain.TabPages.Remove(xtraTabMain.SelectedTa bPage);
Counter.TabMainConter--;
if (x + 1 >= Counter.TabMainConter)
{
x = Counter.TabMainConter;
x--;
}
tabPage.Dispose();
tabPage = null;
GC.Collect();
GC.WaitForPendingFinalizers();
xtraTabMain.SelectedTabPage = xtraTabMain.TabPages[x];
}


با تشکر از دوستای خوبم

ebrahim.rayatparvar
چهارشنبه 07 مرداد 1394, 17:31 عصر
دوستان میتونند راهنمایی کنند

behzadkhan
چهارشنبه 07 مرداد 1394, 21:31 عصر
دوستان میتونند راهنمایی کنند

با سلام

دوست عزیز

من قبلا یک همچین مشکلی داشتم.

فکر می کنم شما باید قبلا Dispose کردن تب مورد نظر باید محتویات آن را نیز Dispose نمایید.

البته چون شما گفتید که از یک UserControl در آن تب استفاده می کنید. احتمالا اگر فقط آن UserControl هم Dispose شود، مشکل برطرف می گردد.

با تشکر