2010-07-16 4 views
23

Я пытаюсь написать приложение для мобильного телефона 7 в первый раз - есть ли таймер, похожий на тот, который используется для winforms? Или есть способ получить такую ​​функциональность?Есть ли таймер для Windows Phone 7?

ответ

46

Вы можете использовать System.Windows.Threading.DispatcherTimer.

System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer(); 
dt.Interval = new TimeSpan(0, 0, 0, 0, 500); // 500 Milliseconds 
dt.Tick += new EventHandler(dt_Tick); 
dt.Start(); 

void dt_Tick(object sender, EventArgs e) 
{ 
     // Do Stuff here. 
} 
7

DispatchTimer - хороший вариант, как и таймер.

Стоит быть знакомым с различиями и оценкой, которая более подходит для вас.

Удобство (DispatchTimer для обновлений пользовательского интерфейса) или Точность (Таймер для предсказуемости) - это суть решения.

Timer Class (System.Threading)

DispatcherTimer Class (System.Windows.Threading)

DispatcherTimer переоценивается на в верхней части каждой DispatcherTimer петли.

Таймеры не гарантируется выполнение точно, когда происходит временной интервал, но они гарантированно не выполнить до наступления временной интервал. Этот объясняется тем, что операции DispatcherTimer помещаются в очередь DispatcherTimer , как и другие операции. При выполнении операции DispatcherTimer в зависимости от других заданий в очереди и их приоритетах.

Если используется System.Threading.Timer, стоит отметить, что таймер работает в другом потоке, то пользователь интерфейс (UI) потоков. Для того, чтобы объектов доступа в потоке пользовательского интерфейса, необходимо отправить сообщение на DispatcherTimer темы пользовательского интерфейса с помощью Dispatcher.BeginInvoke. Это не нужно использовать при использовании DispatcherTimer.

Смежные вопросы