gpt4 book ai didi

c# - WP7 上的计时器调度更改无序

转载 作者:太空宇宙 更新时间:2023-11-03 16:29:02 26 4
gpt4 key购买 nike

我正在尝试在 Windows Phone 7 上制作倒数计时器,这对我的应用程序非常重要。但是我找不到任何方法来每隔一秒更新 UI regullary 中的文本。

Timer dt = new System.Threading.Timer(delegate
{
Dispatcher.BeginInvoke(() =>
{
newtime = oldtime--;
System.Diagnostics.Debug.WriteLine("#" + counter.ToString() +
" new: " + newtime.ToString() +
" old: " + oldtime.ToString());
counter++;
oldtime = newtime;
}
}, null, 0, 1000);

运行我的应用程序后,控制台输出如下所示:

#1 new: 445 old: 446
#2 new: 444 old: 445
#3 new: 445 old: 446
#4 new: 443 old: 444
#5 new: 444 old: 445
#6 new: 442 old: 443
#7 new: 443 old: 444
#8 new: 441 old: 442

我不知道如何摆脱不需要的调用(#3、#5、#7 等)

感谢您的任何建议。

最佳答案

你应该使用 DispatcherTimer反而。以下示例显示了一个计时器从 10 开始倒计时。

DispatcherTimer _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
int _timeLeft = 10;

public MyClass()
{
InitializeComponent();
_timer.Tick += TimerTick;
_timer.Start();
MyTextBox.Text = _timeLeft.ToString();
}

void TimerTick(object sender, EventArgs e)
{
_timeLeft--;
if (_timeLeft == 0)
{
_timer.Stop();
MyTextBox.Text = null;
}
else
{
MyTextBox.Text = _timeLeft.ToString();
}
}

关于c# - WP7 上的计时器调度更改无序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11513396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com