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

انجام یک الگوریتم بصورت پیوسته

Vampire  10 سال پیش  10 سال پیش
0 0

سلام دوستان، فرض کنید من میخوام یک الگوریتم ساده رو هر X ثانیه یک بار تکرار کنم .

ولی این X صفر باشه. بعبارتی بصورت پیوسته انجام بشه و برنامه هم سنگین نشه.

چه راهی پیشنهاد می کنید؟

0 0
از Thread باید استفاده کنید (10 سال پیش)
0 0
thread که طبیعیه استفاده بشه. من میخوام بصورت پیوسته یک الگوریتم تکرار بشه ولی نه با تایمر. فرض کنید میخوام از یک عدد بزرگ (مثلا 5000) ، صدم صدم کم کنم تا به صفر برسم در طول N ثانیه. (10 سال پیش)
0 0
Handler و متد postDelayed (10 سال پیش)
0 0
خب یه سرویس درست کنی بعدش deleay تایمرت بزاری روی صفر چه مشکلی پیش میاد؟ نمیدونم دقیق میخواید چیکار کنی ،اما نمیدونم چرا از تایمر نمیخوای استفاده کنی. (10 سال پیش)
0 0
توی اون مند یک new Handler.postDelay کنید و درون Handler خود متد رو صدا بزنید (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
کاشی زاده  10 سال پیش
+2 0

از ترکیب Thread و While استفاده کنید :

        Thread thread = new Thread(new Runnable() {

@Override
public void run() {
while(number >= 0){
// do work
number-= 500;
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
thread.start();

 این حالت زمان دارش بود ، حالا اگر زمان مورد نظرتون نیست کلا Thread.Slepp رو حذف میکنید ولی اینکار باعث میشه تمام دستورات اجرا بشه در عرض چند ثانیه و احتمالا هم برنامه قفل میکنه یه مدت کوتاهی .
در واقع الگوریتم مورد نظرتون اشتباه هست .


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