آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشخص شدن اتمام کار یک ترد (Thread)

Criss  11 سال پیش  11 سال پیش
+1 0

چطور میتونیم مشخص کنیم تا زمانی که کار یک ترد تموم نشده با هر بار کلیک شدن روی باتن یک ترد جدید ساخته نشه ؟

در واقع چطور میتونیم مشخص کنیم که ترد کار خودش رو تموم نکرده یا تموم کرده ؟

+1 0
دو کار حتما باید انجام بشه - هم پشت صحنه برای کد نویسی و هم در اصل، کاربر رو باید متوجه کنی که انجام کارشو شروع کردی و تا دوباره درخواست نده - لینک (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
sadeghbarout  11 سال پیش
+3 0

خیلی راحت میتونی آخرین خط کار thread ت مقدار یه متغییر boolean رو true کنی و توی بخشی که میخوای تموم شدن ترد رو بررسی کنی، مقدار اون متغییر boolean رو ارزیابی کنی.

0 0
یا اگه چندتاس بریزینشون توی لیست و چک کنید. (11 سال پیش)
پاسخ به سوال 
مجتبی یگانه  11 سال پیش
+1 0

دوستان یه سوال هم من بپرسم !

مثلا داریم

thead - >

while(runThread){
while(buffer.read(...)){
// Do Job
}
}

خوب اینجا وقتی ما runThread رو False کنیم ، بازم کار انجام میشه تا از حلقه دوم بیاد بیرون و یک بار دیگه شرط برسی بشه ، من برای دانلود connecton رو disconnect می کنم و یک exception هندل شده ایجاد میشه و کار ترد تموم میشه ، اما برای سایر کار ها چی ؟ ، یعنی کلا هیچ کار دیگه ای انجام نشه و به محض دستور توقف ، کار متوقف بشه ، حتی اگه هزار تا حلقه در حال فعالیت باشه !

0 0
من از prgBars.get(2).getProgress() == 100 استفاده کردم اینجوری مشخص میشه که ترد کارش تموم نشده اما جالب نیست ! مشکل من این بود که 2 ترد فعال میشد و پروگرس بار توسط 2 ترد مقداردهی میشد ! (11 سال پیش)
0 0
حالا دقیقا منظورو متوجه نشدم اما بهتر نیست بجای while بیرونی، یک if داخل while داخلی بذاریم که با هر بار اجرای حلقه چک کنیم که اگر runThread برابر false بود، break کنه؟ (11 سال پیش)
0 0
@کریس ، ما با کاربر مشکلی نداریم ! ، مشکل ما جلوگیری از پردازش اضافه هست (11 سال پیش)
+1 0
@ حسین ، راه خوبیه و جواب میده ، اما باید یه سری روال اصولی تر باشه که کلا اون Thread رو kill کنه ، باید بیشتر بگردیم :| (11 سال پیش)
0 0
مجتبی جان برای kill کردن ترد قبلی راهی پیدا کردی ؟ (11 سال پیش)
+1 0
چرا همون runThread را در جاهایی از برنامه که مطمئن بودید توقف ترد منجر به اختلال نمی شه سهیم نمی کنید؟ یعنی مشابه همون while یا با if، چند جای دیگه از کد ترد هم که پروسس سنگینی دارند ادامه عملیات را متوقف کنید. لااقل برای انجام هر پروسس سنگین شرط چک بشه! (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .