DispatcherTimer یک کنترل تایمر است که در صف Dispatcher یکپارچه شده است. رویداد تایمر در یک بازه زمانی خاص فراخوانی می شود. مزیت اصلی DispatcherTimer این است که می تواند کد را روی همان رشته UI اجرا کند.


اجازه دهید نحوه پیاده سازی این ویژگی و ویژگی های مهم را ببینیم.  

فاصله - هر چند وقت یکبار یک رویداد باید راه اندازی شود (یعنی مدت زمان بین تیک ها)


TimeSpan به عنوان ورودی برای فاصله - در واقع، در C++ std::Chrono است (C++/WinRT به نوع TimeSpan تایپ می‌شود). 

در زیر نمونه کد نحوه تعریف TimeSpan (به صورت 1 ثانیه مشخص شده است) ارائه شده است.

  1. DispatcherTimer dispatchTimer;  
  2. std::chrono::seconds sec(1);                  
  3.         dispatchTimer.Interval(sec);  
  4.         dispatchTimer.Start();  

تیک

زمانی رخ می دهد که فاصله تایمر سپری شود (بر اساس فاصله زمانی تعیین شده توسط کاربر).

  1. DispatcherTimer dispatchTimer;  
  2.   
  3. dispatchTimer.Tick({ this,&App::dispatch_tick });  
  4.   
  5. void dispatch_tick(IInspectable const & sender, Windows::Foundation::IUnknown const& from)  
  6. {  
  7. }  

از تابع Start

Start برای راه اندازی تایمر استفاده می شود. اگر تایمر از قبل در حال اجرا است، متد start را فراخوانی کنید زیرا فرآیند را مجدداً راه اندازی می کند.

  1. DispatcherTimer dispatchTimer;  
  2. dispatchTimer.Start();  

عملکرد توقف

توقف برای توقف زمان در صورت اجرا استفاده می شود.

  1. DispatcherTimer dispatchTimer;  
  2. dispatchTimer.Stop();  


اجازه دهید یک مثال را ببینیم.

هر ثانیه DispatcherTimer را فراخوانی کنید و به طور خودکار مقدار ProgressBar را افزایش دهید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *