PDA

View Full Version : کار با thread



plato
شنبه 15 اردیبهشت 1386, 18:14 عصر
سلام. کسی میتونه به من بگه چطوری میتونم یه Thread رو ببندم.
از دستور ()thread.abort استفاده کردم ولی نشد.
در موقع بستن برنامه، Abort رو صدا می زنم ولی برنامه باز میمونه.

ARA
یک شنبه 16 اردیبهشت 1386, 00:30 صبح
سلام من این رو امتحان کردم تمام مراحل درست کار میکرد
ببین شاید بدردت بخوره
این بدون مشکل کار میکنه و abort میشه
اگه میخوای کاملا مطمئن شی- taskmanager منو View گزینه Select Columns رو بزن و
Thread Count رو تیک بزن به task Manager یک ستون دیگه اضافه میشه که تعداد تردهای
هر برنامه رو نشون میده میتونی موقع اجرای برنامه کاملا ببینی که وقتی یک ترد abort
میشه از مجموع تعداد ترد های برنامه ات یکی کم میشود و با اجرای ترد یک ترد به تعداد ترد
ها اضافه میشه
البته یک راه دیگه برای trace کردن برنامه ات داری اونهم خود VS.net از منو Debug زیر منو Window و thread رو بزنی میتونی موقع trace کردن ببینی کدوم ترد داره کار میکنه و کدوم بیکاره


البته من تو یک کتاب خوندم که از داخل خود ترد نمیتوان خودش رو abort کرد ولی در این
مثال من هر دو حالت رو امتحان کردم و جواب داد :اشتباه:

نمیدونم تونستم کمکی بکنم یا نه
اگر نه برنامه ات رو بگذار تا با بچه ها هم چک کنیم و راه حلی براش پیدا کنیم

SYSMAN
یک شنبه 16 اردیبهشت 1386, 00:38 صبح
منظورتون از باز موندن برنامه یعنی چی؟ متدی که شما گفتید تنها باعث می شه که thread جاری شما خاتمه پیدا کند ولی این موضوع ربطی به خاتمه پیدا کردن برنامه شما ندارد.

plato
یک شنبه 16 اردیبهشت 1386, 11:35 صبح
از کدی که واسم فرستادین ممنونم. لطفا این برنامه رو تست کنید و ببینید مشکل از کجاست.

plato
یک شنبه 16 اردیبهشت 1386, 11:44 صبح
منظورتون از باز موندن برنامه یعنی چی؟ متدی که شما گفتید تنها باعث می شه که thread جاری شما خاتمه پیدا کند ولی این موضوع ربطی به خاتمه پیدا کردن برنامه شما ندارد.

منظورم اینه که تنها فرم برنامه رو که می بندم، Application بسته نمیشه (فکر کنم به خاطر اینه که هنوز thread بازه با اینکه من دستور abort رو اجرا کردم).

ARA
یک شنبه 16 اردیبهشت 1386, 16:08 عصر
از متد formClosed استفاده کن
;()Application.Exit
من برنامه ات رو دیدم اون چیزی که شما میگین رو ندیدم
البته اگه بصورت release و بدون fileName.svhost.exe کامپایل کنی هیچ اثری از برنامه ات بعد از بسته شدن باقی نمیمونه
من فکر میکنم منظور شما از بسته شدن همون svhost.exe برنامه هستش که باز میمونه
اگه منظورتون اونه باید بگم که اون فقط به درد دیباگ میخوره برای اینکه برنامت رو بدی دست مشتری باید اون رو غیر فعال کنی از پروپرتی پروژه