[英]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.