PDA

View Full Version : پاک کردن از حافظه



regbyte
دوشنبه 08 بهمن 1386, 01:13 صبح
سلام

من یه UserControl رو در یه Panel فراخونی می کنم،
چطور می تونم بعد از اتمام کار آن رو از حافظه کاملا پاک کنم؟
چون هر بار فراخونی آن ، حافظه اشغال می کنه و حجمش ( در Task manager ) بالا می رود.
لطفا راهنمایی کنید.

اَرژنگ
دوشنبه 08 بهمن 1386, 05:28 صبح
سلام

من یه UserControl رو در یه Panel فراخونی می کنم،
چطور می تونم بعد از اتمام کار آن رو از حافظه کاملا پاک کنم؟
چون هر بار فراخونی آن ، حافظه اشغال می کنه و حجمش ( در Task manager ) بالا می رود.
لطفا راهنمایی کنید.
به جایه اینکه از حافظه پاکش کنید از پترن سینگلتن استفاده کنید و فقط ازش یک نمونه داشته باشید، روش پاک کردن ازحافظه و دوباره ساختنش همچین روش خوبی نیست.

MH2538
دوشنبه 08 بهمن 1386, 06:51 صبح
YourUserControl = null;

regbyte
دوشنبه 08 بهمن 1386, 11:36 صبح
به جایه اینکه از حافظه پاکش کنید از پترن سینگلتن استفاده کنید و فقط ازش یک نمونه داشته باشید، روش پاک کردن ازحافظه و دوباره ساختنش همچین روش خوبی نیست.

من می خوام این UserControl ها هر بار دوباره از اول لود بشن. اگر ازشون یک نمونه بسازم چطوری می تونم ، هر بار دوباره از اول لودشون کنم؟
لطفا راهنمایی کنید.

اَرژنگ
دوشنبه 08 بهمن 1386, 13:26 عصر
من می خوام این UserControl ها هر بار دوباره از اول لود بشن. اگر ازشون یک نمونه بسازم چطوری می تونم ، هر بار دوباره از اول لودشون کنم؟
لطفا راهنمایی کنید.

با عرض پوزش، از حرفتان سر درنمیارم، منظورتان از لود شدن در "من می خوام این UserControl ها هر بار دوباره از اول لود بشن" چیه؟ شما به چی لود شدن میگید، اگر میتوانید یک مثال که مشکل را نشان بده سرهم کنید و بفرستید براتان درستش میکنیم.

regbyte
دوشنبه 08 بهمن 1386, 15:33 عصر
من یه Panel دارم، که UserControl ها رو روش قرار می دهم:

MyUserControl uc = newMyUserControl();
this.pnlMain.Controls.Clear();
this.pnlMain.Controls.Add(uc );

اگر ازش یک نمونه بسازم ، وقتی دوباره Add می کنم، اگر تغییری روی آن رخ داده شده باشه (مثلا یک CheckBox روی آن تیک خورده باشه) آن تغییر حفظ می شود و در صورتیکه من می خوام این اتفاق نیفته .
لطفا راهنمایی کنید.

اَرژنگ
سه شنبه 09 بهمن 1386, 03:44 صبح
من یه Panel دارم، که UserControl ها رو روش قرار می دهم:

MyUserControl uc = newMyUserControl();
this.pnlMain.Controls.Clear();
this.pnlMain.Controls.Add(uc );

اگر ازش یک نمونه بسازم ، وقتی دوباره Add می کنم، اگر تغییری روی آن رخ داده شده باشه (مثلا یک CheckBox روی آن تیک خورده باشه) آن تغییر حفظ می شود و در صورتیکه من می خوام این اتفاق نیفته .
لطفا راهنمایی کنید.

خوب همه کنترلها را قبل از اضافه کردن ریست کنید، یک مثال بفرستید درستش میکنیم.

regbyte
سه شنبه 09 بهمن 1386, 10:31 صبح
با تشکر

اما چون تعداد UserControl ها و کنترلهای آنها زیاد است، دنبال یه راه ساده تر می گردم.

لطفا راهنمایی کنید.

اَرژنگ
سه شنبه 09 بهمن 1386, 14:20 عصر
با تشکر

اما چون تعداد UserControl ها و کنترلهای آنها زیاد است، دنبال یه راه ساده تر می گردم.

لطفا راهنمایی کنید.

مگر قرار است که با دست یکی یکی پاک کنید؟ یک For لوپ پس برایه چه کاریه؟
یک مثال بفرستید درستش کنیم

Masoud_TB
چهارشنبه 10 بهمن 1386, 09:02 صبح
خوب برای اینکه از حافظه پاک شه می تونی از متد Dispose استفاده کنی.