PDA

View Full Version : thread



iamehsan56
شنبه 30 آذر 1387, 15:23 عصر
سلام
من يه Thread دارم كه مدت زمان زيادي اجراش طول مي كشه و مي خوام هر زماني وسط كارش بتونم به كار اون Thread خاتمه بدم . اما هر كاري كردم نشد . از چه دستوري بايد استفاده كنم
با suspend هم نتونستم نگهش دارم .لطفا كمكم كنيد .

vcldeveloper
شنبه 30 آذر 1387, 16:06 عصر
باید در حین اجرای Thread مرتبا خصوصیت Terminated را چک کنید، تا هر زمان Thread شما Terminate شد، از تابع Execute مربوط به Thread خارج بشید. مثلا اگر عملیات شما در یک حلقه انجام میشه، در هر بار اجرای حلقه شرط فوق را چک کنید.

در ضمن، وقتی Suspend می کنید، Thread حتما متوقف میشه، چون سیستم عامل Thread را مجبور به توقف میکنه. البته Suspend کردن با Terminate کردن فرق میکنه.

iamehsan56
یک شنبه 01 دی 1387, 10:13 صبح
ممنون .اما وقتي thread در حال اجرا نيست و suspend مي كنم error مي ده . بنابراين بايد چك كنم كه thread در حال اجراست يا نه . چطوري بايد اينو چك كنم ؟

iamehsan56
دوشنبه 02 دی 1387, 17:15 عصر
من همون كاري كه آقاي كشاورز گفتن كردم اما الان مشكل من اينه كه مي خوام از بيرون Thread بفهمم كه آيا Thread الان در حال اجرا هست يا نه ؟ براي اين قضيه چه كاري بايد انجام بدم

vcldeveloper
دوشنبه 02 دی 1387, 18:38 عصر
از تابع GetExitCodeThread استفاده کنید. اگر Thread هنوز در حال اجرا باشد، مقدار STILL_ALIVE را برمی گرداند. برای اطلاعات بیشتر درباره این تابع، به MSDN مراجعه کنید.