مشاهده فایل
کتابخانه بسیار کاربردی PersianTimer
با سلام خدمت دوستان عزیز امیدوارم که حالتون خوب باشه و کدهاتون بی ارور
با یک کتابخونه بسیار کاربردی و واجب در خدمتتون هستم.
کتابخونه timer خود بیسیک واقعا ضعیف و بدون امکانات هست. و گزارشهایی هم شده که کتابخونه به درستی کار نمیکنه.
تو این کتابخونه به جای خود تایمر اندروید و یا handler اومدیم و از scheduledexecutorservice که از خانواده قدرتمند ThreadPoolExecutor هست استفاده کردیم. یکی از مزیت های بسیار خوب این کتابخونه این هست که به راحتی میتونید بینهایت کار رو به صورت همزمان توی نخهای متفاوت بدون هیچ گونه تداخلی انجام بدین.این کار به وسیله Future ها انجام میشه و توی کتابخونه به وسیله tag تایمرها از هم متمایز میشن.
امیدوارم که از کتابخونه واقعا کاربردی بهترین استفاده رو بکنید. لینک آموزش و سورس کتابخونه
واما نحوه استفاده از کتابخونه. ابتدا کتابخونه رو تیک بزنید و اونو اینشیالایز کنید
Dim prt As PersianTimer
prt.Initialize("prt")
توی این کتابخونه سه تا متد اصلی هست.
متد اول متد schedule هست. این متد کارش اینه که یک کار مشخص رو بعد از یک تایم مشخص انجام میده. در واقع تایمر رو برای تایم مشخص ست میکنه. مثال.
prt.schedule("schedule",prt.TimeUnit_SECONDS,10)
Private Sub prt_onTick(Tag As String,TimeUntil As Int)
بعد از 10 ثانیه این متد اجرا میشه
End Select
متد دوم scheduleAtFixedRate هست. این متد تایمر رو با یک وقفه مشخص برای یک دوره زمانی متناوب ست میکنه. مثال.
prt.scheduleAtFixedRate("scheduleAtFixedRate",prt.TimeUnit_SECONDS,3,1) ' یعنی اینکه بعد از 3 ثانیه هر یک ثانیه تیک بخور تا زمانی که اونو کنسل نکنید به همین
صورت هر یک ثانیه یک بار متد زیر اجرا میشه
Private Sub prt_onTick(Tag As String,TimeUntil As Int)
این متد هر یک ثانیه اجرا میشه
End Select
متد سوم متد scheduleCountDown هست. این متد یک تایمر معکوس با تایم مشخص و دوره تیک مشخص ایجاد میکنه. مثال
prt.scheduleCountDown("scheduleCountDown1",prt.TimeUnit_SECONDS,30,1) ' یعنی اینکه از 30 شروع کن و تا صفر یک ثانیه یک ثانیه بیا
Private Sub prt_onTick(Tag As String,TimeUntil As Int)
Log("Tick : "&Tag&" TimeUntil : "&TimeUntil) ' TimeUntil مقدار زمان باقیمانده تا صفر هست به ثانیه
End Select
End Sub
بعد از 30 ثانیه تایمر تموم میشه و متد زیر اجرا میشه
Private Sub prt_onFinish(Tag As String)
Log("Finish : "&Tag)
End Sub
ارسال کننده
محمدرضا شاهپیری
ارسال
جمعه, 26 بهمن 1397
دسته
کتابخانه ها