PDA

View Full Version : سوال: تداخل Thread ها



moh_mov
سه شنبه 12 بهمن 1389, 20:58 عصر
سلام.
مشکلی با این شرح داشتم.
فرض کنید یک picturebox وجود دارد که ما می خواهیم عکس اون رو عوض کنیم.اما به دلیل حجم عکس و مشکلات خاصی زمان زیادی تو اردر 1 ثانیه طول میکشه که عکس لود بشه و کاربر می ره تو مد هنگ.
حالا من می خوام این تغییر عکس رو با thread انجام بدم اما به دلیل اینکه تداخل 2 ترد پیش میاد این کار رو نمی تونم بکنم.
بنابراین باید thread اول رو invoke کنم و از این کارا اما این کار رو بلد نیستم که چه باید بکنم.
میشه راهنمایی کنید؟دنبالش رفتم اما چیزی نفهمیدم!:ناراحت::ناراحت::نار احت:

moh_mov
چهارشنبه 13 بهمن 1389, 14:46 عصر
دوستان فکر می کنم این مسئله بسیار ساده باشه....می شه راهنمایی کنید؟

hossin.esm
چهارشنبه 13 بهمن 1389, 15:08 عصر
این مثال را ببین

moh_mov
چهارشنبه 13 بهمن 1389, 15:16 عصر
این مثال را ببین
ممنون...اما میشه بیشتر توضیح بدبد چه اتفاقی میوفته؟
تقریبا متوجه شدم.

hossin.esm
چهارشنبه 13 بهمن 1389, 15:51 عصر
خیلی دقیق نمی تونم توضیح بدم

یک delegate تعریف کردم که پارامتر وروداش یک رشته هست


publicdelegatevoidd_change(string s);



یک نوع از delegate تعریف شده ساختم.


publicd_change change;
;


مقدار دهی کردم و به تابع changeTextBox مرتبط ساختم.


change = newd_change(this.changeTextBox);



توی تابع کدی که میخوام اجرا بشه را گذاشتم



وتوی نخ برای اجرا از کد زیر استفاده کردم


this.Invoke(change, i.ToString());

که i.ToString() رشته ورودی تابع هست


میدونم خوب توضیح ندادم