PDA

View Full Version : استفاده از C1.Win.C1Tile.C1TileControl و مشکل با خالی کردن memory



beginner_1395
دوشنبه 10 مهر 1396, 14:47 عصر
من توی برنامه از کامپوننت C1TileControl استفاده میکنم

یه لیست دارم توی برنامه که با هر بار کلیک روی اون Tiles رو Clear میکنم


c1TileControl_Demos.Groups[0].Tiles.Clear();

بعد توی یه حلقه دوباره پر میشه



foreach (...) {
C1.Win.C1Tile.Tile t1 = new C1.Win.C1Tile.Tile();
t1.Text = ...;
t1.Text1 = ...;
//Highlight new controls and samples using a different tile image
t1.Tag = ...;
t1.Template = template_my_1;
// See note below.
// t1.ImageIndex = _pageIndex;
string imgFile = ImageFileName ;


if (File.Exists(imgFile))
{
Image myImage = Image.FromFile(imgFile);


t1.Image = myImage;
t1.Image1 = myImage;
}
main.c1TileControl_Demos.Groups[0].Tiles.Add(t1);


....
}


که تعداد ایتم هایی که نمایش داده میشه متغیر مثلا ممکنه چند تا باشه یا بالای دویست باشه
که برای هر ایتم هم دو تا تصویر قرار میگیره

حالا مشکل اینه که هر بار که روی لیست کلیک میشه توی تسک منیجر memory که برنامه استفاده میکنه همینطور زیاد میشه
یعنی با کلیک اول روی لیست و نمایش 250 ایتم در C1TileControl مموری که اشغال میشه 250 mb هستش
با کلیک های بعدی روی فهرست که C1TileControl رو خالی میکنم و memory خالی نمیشه
و با اجراشدن حلقه مموری اشغال شده برنامه همینطور زیاد میشه
یعنی با 10 بار پر و خالی شده C1TileControl میزان مموری اشغال شده برنامه به بالای 1gb هم میرسه
حالا نمیدونم کجای کدم رو باید تغییر بدم

Cpp_Qt
چهارشنبه 12 مهر 1396, 16:36 عصر
سلام دوست من
حقیقت اینه که مشکل شما ریشه ای تر از این حرفاس
به این خاطر که سی شارپ و کلا دات نت در زمینه مدیریت حافظه مشکل داره
شما هم با استفاده از کامپوننت های شخص ثالث کار رو بدتر کردی

پیشنهاد من به شما اینه همه چیز رو ول کن برو دلفی یا سی پلاس پلاس یاد بگیر
بای

رامین مرادی
پنج شنبه 13 مهر 1396, 09:56 صبح
سلام دوست من
حقیقت اینه که مشکل شما ریشه ای تر از این حرفاس
به این خاطر که سی شارپ و کلا دات نت در زمینه مدیریت حافظه مشکل داره
شما هم با استفاده از کامپوننت های شخص ثالث کار رو بدتر کردی

پیشنهاد من به شما اینه همه چیز رو ول کن برو دلفی یا سی پلاس پلاس یاد بگیر
بای

بهتره راهنمایی بهتری انجام بدید. بجای اینکه دلسردش کنید.

beginner_1395 (http://barnamenevis.org/member.php?381092-beginner_1395)
عزیز شما میای از حافظه جانبی 250 *2 عکس لود میکنی خب ممکنه پردازش بره بالا.
اگه واقعا نیازه این همه عکس یه جا لود بشه که فک نکنم چاره باشه (مگه اینکه سعی کنی اندازه و حجم عکستو بیاری پایین)
اگه هم امکان باشه به صورت صفحه بندی کار کن. مثلا وقتی داده هات لود میشه چند صفحه کن و کاربر تو هر کدوم از صفحات بود فقط عکسای اون صفحه نشون داده بشه.
یا اینکه وقتی کاربر رو یکی از رکوردها کلیک کرد اونموقع عکس مربوطش لود بشه.
اینجوری شاید بتونی این مشکل رو حل کنی.