[英]Delay Call + Update CountDown on UI
我想延迟加载数据1到20秒之间的任何时间。 我还想更新具有倒计时的UI以更新,例如“在x中更新数据...”
我可以做Task.Delay,或DispatcherTimer或Aysnc / await,但如何每隔倒计时更新一次UI?
示例提出我的观点(这对我不起作用,因为这是阻止UI线程)。
private void Update()
{
var random = new Random();
var counter = random.Next(1, 20);
for (int i = counter; i > 0; i--)
{
UpdateCounter = i;// property bound to UI to update the countdown
Thread.Sleep(1000); //
}
// some function to update data...
}
如何做有很多选择。 我实施了其中两个。 我建议第二,但这取决于你的需求。
private void Update1()
{
Task.Factory.StartNew(() =>
{
var random = new Random();
var counter = random.Next(1, 20);
for (int i = counter; i > 0; i--)
{
Dispatcher.Invoke(() => UpdateCounter = i);
Task.Delay(1000).Wait();
}
Dispatcher.Invoke(// some function to update data...);
}
);
}
private async Task Update2()
{
var random = new Random();
var counter = random.Next(1, 20);
for (int i = counter; i > 0; i--)
{
UpdateCounter = i;
await Task.Delay(1000);
}
// some function to update data...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.