DispatcherTimer Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirli bir zaman aralığında ve belirtilen bir önceliğe göre işlenen kuyruğa tümleştirilmiş Dispatcher bir zamanlayıcı.
public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
- Devralma
-
DispatcherTimer
Örnekler
Aşağıdaki örnek, öğesinin içeriğini güncelleştiren ve üzerinde DispatcherTimeryöntemini çağıran Label bir InvalidateRequerySuggestedCommandManager oluşturur.
DispatcherTimer adlı dispatcherTimer bir nesne oluşturulur. Olay işleyicisi dispatcherTimer_Tick olayına TickdispatcherTimereklenir.
Interval nesnesi kullanılarak TimeSpan 1 saniye olarak ayarlanır ve zamanlayıcı başlatılır.
// DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
dispatcherTimer.Start();
' DispatcherTimer setup
dispatcherTimer = New Threading.DispatcherTimer()
AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick
dispatcherTimer.Interval = New TimeSpan(0,0,1)
dispatcherTimer.Start()
Olay işleyicisi Tick geçerli saniyeyi görüntüleyen bir Label öğesini güncelleştirir ve üzerinde InvalidateRequerySuggestedöğesini çağırırCommandManager.
// System.Windows.Threading.DispatcherTimer.Tick handler
//
// Updates the current seconds display and calls
// InvalidateRequerySuggested on the CommandManager to force
// the Command to raise the CanExecuteChanged event.
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
// Updating the Label which displays the current second
lblSeconds.Content = DateTime.Now.Second;
// Forcing the CommandManager to raise the RequerySuggested event
CommandManager.InvalidateRequerySuggested();
}
' System.Windows.Threading.DispatcherTimer.Tick handler
'
' Updates the current seconds display and calls
' InvalidateRequerySuggested on the CommandManager to force
' the Command to raise the CanExecuteChanged event.
Private Sub dispatcherTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
' Updating the Label which displays the current second
lblSeconds.Content = Date.Now.Second
' Forcing the CommandManager to raise the RequerySuggested event
CommandManager.InvalidateRequerySuggested()
End Sub
Açıklamalar
DispatcherTimer her döngünün en üstünde Dispatcher yeniden değerlendirilir.
Süreölçerlerin tam olarak zaman aralığı oluştuğunda yürütülmesi garanti edilmemektedir, ancak zaman aralığı gerçekleşmeden önce yürütülmeyecekleri garanti edilir. Bunun nedeni DispatcherTimer , işlemlerin Dispatcher diğer işlemler gibi kuyruğa yerleştirilmesidir. DispatcherTimer İşlem yürütülürken kuyruktaki diğer işlere ve bunların önceliklerine bağımlıdır.
WPF bir uygulamada System.Timers.Timer kullanılıyorsa, System.Timers.Timer kullanıcı arabirimi (UI) iş parçacığından farklı bir iş parçacığında çalıştırıldığını belirtmek gerekir. Kullanıcı arabirimi (UI) iş parçacığındaki nesnelere erişmek için, veya Dispatcherkullanarak Invoke işlemi kullanıcı arabirimi (UI) iş parçacığına BeginInvoke göndermek gerekir. 'nin aksine bir DispatcherTimer kullanmanın nedenleri, System.Timers.Timer ve ile aynı iş parçacığında DispatcherTimer çalıştırılanların Dispatcher üzerinde ayarlanabilmesidirDispatcherPriority.DispatcherTimer
Bir DispatcherTimer nesnenin yöntemleri zamanlayıcıya bağlı olduğunda nesnenin canlı kalmasını sağlar.
Oluşturucular
| Name | Description |
|---|---|
| DispatcherTimer() |
DispatcherTimer sınıfının yeni bir örneğini başlatır. |
| DispatcherTimer(DispatcherPriority, Dispatcher) |
Belirtilen önceliğe göre belirtilen DispatcherTimer üzerinde çalışan sınıfının yeni bir örneğini Dispatcher başlatır. |
| DispatcherTimer(DispatcherPriority) |
Zamanlayıcı olaylarını belirtilen önceliğe göre işleyen sınıfının yeni bir örneğini DispatcherTimer başlatır. |
| DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
Belirtilen zaman aralığını, önceliği, olay işleyicisini ve DispatcherTimerkullanan sınıfının yeni bir örneğini Dispatcher başlatır. |
Özellikler
| Name | Description |
|---|---|
| Dispatcher |
bu Dispatcherile ilişkilendirilmiş öğesini DispatcherTimer alır. |
| Interval |
Süreölçer onay işaretleri arasındaki süreyi alır veya ayarlar. |
| IsEnabled |
Zamanlayıcının çalışıp çalışmadığını belirten bir değer alır veya ayarlar. |
| Tag |
Kullanıcı tanımlı veri nesnesini alır veya ayarlar. |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| Start() |
DispatcherTimeröğesini başlatır. |
| Stop() |
öğesini DispatcherTimerdurdurur. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Ekinlikler
| Name | Description |
|---|---|
| Tick |
Süreölçer aralığı geçtiğinde gerçekleşir. |