В моем приложении wp7.5 у меня есть блок, где мне нужно показать секундомер (скажем, 30,29,28 ... 1,0).Я пробовал различные реализации для достижения этой цели с использованием классов DispatchTimer и Timer, но ни одна из них не решила мою проблему.
Подход 1. Вот фрагмент кода, который я использовал для DispatchTimer,
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = new TimeSpan(0, 0, 1); // 1 second
dt.Tick += new EventHandler(dt_Tick);
for(int count=0;count<30;count++)
dt.Start();
void dt_Tick(object sender, EventArgs e)
{
// my UI control update here
}
в моемРеализация тиковых событий. Я обновляю элемент управления с помощью счетчика времени.Здесь я прочитал несколько вопросов на ту же тему, где тик диспетчера никогда не срабатывает в некоторых сценариях из-за потока пользовательского интерфейса.То же самое произошло со мной, тиковое событие никогда не срабатывало.
Подход 2: Я пытался использовать класс System.Threading.Timer,
Timer timer = new Timer(TimerProc);
for(int count=0;count<30;count++)
timer.Change(1000, 0);
void TimerProc(object sender)
{
// my UI control update here
}
Ни один из моих подходов не сработал.Я мог бы задать повторный вопрос, может кто-нибудь указать мне, где я делаю неправильно в коде?