我正在使用 Silverlight C# 按钮单击事件在单击后暂停 10 秒,然后每 x 秒调用一次方法,直到满足特定条件:x = y 或经过的秒数> = 60,而不冻结 UI。
有几个不同的例子。我是 C# 新手,并试图保持简单。我想出了以下内容,但我没有最初的 10 秒等待,我需要了解该放在哪里,而且似乎我有一个无限循环。这是我的代码:
public void StartTimer()
{
System.Windows.Threading.DispatcherTimer myDispatchTimer = new System.Windows.Threading.DispatcherTimer();
myDispatchTimer.Interval = TimeSpan.FromSeconds(10); // initial 10 second wait
myDispatchTimer.Tick += new EventHandler(Initial_Wait);
myDispatchTimer.Start();
}
void Initial_Wait(object o, EventArgs sender)
{
System.Windows.Threading.DispatcherTimer myDispatchTimer = new System.Windows.Threading.DispatcherTimer();
// Stop the timer, replace the tick handler, and restart with new interval.
myDispatchTimer.Stop();
myDispatchTimer.Tick -= new EventHandler(Initial_Wait);
myDispatchTimer.Interval = TimeSpan.FromSeconds(5); //every x seconds
myDispatchTimer.Tick += new EventHandler(Each_Tick);
myDispatchTimer.Start();
}
// Counter:
int i = 0;
// Ticker
void Each_Tick(object o, EventArgs sender)
{
GetMessageDeliveryStatus(messageID, messageKey);
textBlock1.Text = "Seconds: " + i++.ToString();
}