PDA

View Full Version : کار با ترد برای لود تعداد زیادی تصویر داخل لیست ویو



saed2006
جمعه 05 آذر 1389, 19:17 عصر
سلام
یک لیست ویو دارم که تصویر هر ایتمش رو از یک imagelist دریافت میکنه
ممکنه تعداد تصاویر داخل imagelist هزاران عدد باشه بنابر این اومدم ایمیج لیت رو داخل یک ترد مجزا ساختم و بعد از پایان ساخته شدن ان را منتسب کردم به listview
مشکلم اینه که وقتی imaglist i رو به listview متصل میکنم
تصاویر نمایش داده نمیشوند در حالی که در imagelist ساخته شده در ترد مجزا کلی تصویر وجود داره
اینم کدش:


private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
System.Diagnostics.Stopwatch ss = new Stopwatch();
ss.Start();
List<string> lst = (List<string>)e.Argument;
ImageList imgs = mng.GetImages(lst);
lst.Clear();
MessageBox.Show(ss.Elapsed.TotalSeconds.ToString() );
backgroundWorker1.ReportProgress(100, imgs);
}

private void backgroundWorker1_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
ImageList imgs = (ImageList)e.UserState;
imageList1.Images.Clear();
imageList1=new ImageList();
imageList1 = imgs;
glacialList1.LargeImageList = imageList1;
glacialList1.SmallImageList = imageList1;
glacialList1.Invalidate();
glacialList1.Update();
glacialList1.Refresh();
}

exlord
شنبه 06 آذر 1389, 00:09 صبح
باید به لیستت آیتم اضافه کنی و imageindex رو برای هر آیتم ست کنی تا عکس هارو نشون بده ...

saed2006
شنبه 06 آذر 1389, 12:16 عصر
خب من دقیقا این روش استفاده کردم
اما مشکل اینه که تا وقتی کل تصاویر لود نشده نمیتوان با اسکرول بین ایتم ها حرکت کرد چراکه بلافاصله بعد از اسکرول ایتم اول می اید و نمیزاره ایتم های زیرین را دید
و دیگه اینکه وقتی تصاویر داره لود میشه کاربر با برنامه میتونه کار کنه به محض پایان لود تصاویر برنامه هم قفل میکنه البته این در حالتی هست که تعداد تصاویر به 1500 برسه

dr_jacky_2005
شنبه 06 آذر 1389, 14:58 عصر
خب من دقیقا این روش استفاده کردم
اما مشکل اینه که تا وقتی کل تصاویر لود نشده نمیتوان با اسکرول بین ایتم ها حرکت کرد چراکه بلافاصله بعد از اسکرول ایتم اول می اید و نمیزاره ایتم های زیرین را دید
و دیگه اینکه وقتی تصاویر داره لود میشه کاربر با برنامه میتونه کار کنه به محض پایان لود تصاویر برنامه هم قفل میکنه البته این در حالتی هست که تعداد تصاویر به 1500 برسه

فکرکنم شما به دنبال backgroundWorker باشید،عالیست.

توو همین فروم پره.

exlord
شنبه 06 آذر 1389, 17:03 عصر
خب من دقیقا این روش استفاده کردم
اما مشکل اینه که تا وقتی کل تصاویر لود نشده نمیتوان با اسکرول بین ایتم ها حرکت کرد چراکه بلافاصله بعد از اسکرول ایتم اول می اید و نمیزاره ایتم های زیرین را دید
و دیگه اینکه وقتی تصاویر داره لود میشه کاربر با برنامه میتونه کار کنه به محض پایان لود تصاویر برنامه هم قفل میکنه البته این در حالتی هست که تعداد تصاویر به 1500 برسه
نحوه استفادت از backgrounworker و نحوه لود عکس هات درست نیست ... نمومه برنامه گزاشتم .. اونو ببین مشکلت حل میشه .. همین الان 2000 تا عکی لود کردم اون هر کدوم 1920*1080 ... آخ هم نگفت ... اسکرول هم میشه ...