مطالبی در مورد جاوا

مطالبی در مورد جاوا
بسم الله الرحمن الرحیم

TimerTask انجام کاری به صورت دوره ای

يكشنبه, ۲۷ شهریور ۱۴۰۱، ۱۲:۲۰ ب.ظ

کاری را که باید به صورت دوره‌ای انجام گیرد را در یک کلاس می نویسیم:

public class MyTaskClass extends TimerTask {
    public void run () {
            // doSomething (); // کاری که باید انجام شود را اینجا می نویسیم.
    }
}

سپس در برنامه اصلی جایی که باید این وظیفه دوره‌ای آغاز به کار کند (مثلا در بخش main) خط زیر را می نویسیم:

new Timer().schedule (new MemoryFreeUpTaskClass (), 0, 1000);

البته خط بالا خلاصه است و بهتر است خط بالا را به صورت سه خط زیر نوشت:

// تعریف به صورت یک فیلد 
Timer myTimerObject = new Timer ();

// روشن کردن تایمر تسک
MyTaskClass myTaskObject = new MyTaskClass ();
myTimerObject.schedule  ( myTaskObject  , 0 , 1000 ); // هر هزار میلی ثانیه یک بار تابع ران را اجرا کن

چرا؟ برای این که خاموش کردن تایمر معمولا در جایی متفاوت انجام می گیرد بنابر این باید تعریف تایمر در کلاس بالاتر (اصلی) باشد تا بتوان از دو جای متفاوت آن را روشن و خاموش کرد.

 

روش خاموش کردن تایمر:

myTimerObject .cancel (); // رها کردن تایمر
myTimerObject .purge (); // صفر کردن مقدار تایمر

 

دوباره روشن کردن تایمر:

MyTaskClass myTaskObject = new MyTaskClass ();
myTimerObject.schedule  ( myTaskObject  , 0 , 1000 );

 

موافقین ۰ مخالفین ۰ ۰۱/۰۶/۲۷

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی