بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
انجام یک الگوریتم بصورت پیوسته
سلام دوستان، فرض کنید من میخوام یک الگوریتم ساده رو هر 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 رو حذف میکنید ولی اینکار باعث میشه تمام دستورات اجرا بشه در عرض چند ثانیه و احتمالا هم برنامه قفل میکنه یه مدت کوتاهی .
در واقع الگوریتم مورد نظرتون اشتباه هست .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .