golinazhad_h
چهارشنبه 21 فروردین 1392, 10:05 صبح
سلام
من یک usercontrol در سی شارپ ساختم و یک imagebox هم بهش اضافه کردم در موقع instance کردن از این کنترل دوتا bitmap و یک thread هم میسازم و نهایتا thread را اجرا میکنم وظیفه این thread ساخت انیمیشن با تصویر است
اگر چند تا از این usercontrol بسازم و از روی فرم remove نکنم و thread داخل usercontrol برای همیشه کار کند هیچ مشکلی ندارد
ولی اگر چند تا از این usercontrol بسازم thread داخلش را اجرا کنم و بعد ار اتمامش توسط فرم اصلی این usercontrol ها را اروی فرم dispose کنم بعد دوباره ایجاد کنم و اجرا کنم(عمل ایجاد و dispode مدام تکرار شود ) تعداد هندلهخای ایجاد شده در ویندوز مرتبا زیاد میشود و برنامه هنگ میکند
ضمنا وقتی usercontrol را dispose میکنم همه کنترلهای داخلش و حتی thread را هم نیز dispose میکنم و در انتهای متد dispose باز base.dispose() را هم فراخوانی میکنم gorbrage collector را هم فراخوانی میکنم
به نظر دوستان مشکل چی میتونه باشه؟
من یک usercontrol در سی شارپ ساختم و یک imagebox هم بهش اضافه کردم در موقع instance کردن از این کنترل دوتا bitmap و یک thread هم میسازم و نهایتا thread را اجرا میکنم وظیفه این thread ساخت انیمیشن با تصویر است
اگر چند تا از این usercontrol بسازم و از روی فرم remove نکنم و thread داخل usercontrol برای همیشه کار کند هیچ مشکلی ندارد
ولی اگر چند تا از این usercontrol بسازم thread داخلش را اجرا کنم و بعد ار اتمامش توسط فرم اصلی این usercontrol ها را اروی فرم dispose کنم بعد دوباره ایجاد کنم و اجرا کنم(عمل ایجاد و dispode مدام تکرار شود ) تعداد هندلهخای ایجاد شده در ویندوز مرتبا زیاد میشود و برنامه هنگ میکند
ضمنا وقتی usercontrol را dispose میکنم همه کنترلهای داخلش و حتی thread را هم نیز dispose میکنم و در انتهای متد dispose باز base.dispose() را هم فراخوانی میکنم gorbrage collector را هم فراخوانی میکنم
به نظر دوستان مشکل چی میتونه باشه؟