بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
Vampire 10 سال پیش
آخرین تغییر: 10 سال پیش

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

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

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

نظرات

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

پاسخ‌ها 1

کاشی زاده 10 سال پیش

از ترکیب 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 رو حذف میکنید ولی اینکار باعث میشه تمام دستورات اجرا بشه در عرض چند ثانیه و احتمالا هم برنامه قفل میکنه یه مدت کوتاهی .
در واقع الگوریتم مورد نظرتون اشتباه هست .

نظرات


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