繁体   English   中英

如何在每个循环中更改TextBlock.Text?

[英]How to change TextBlock.Text every loop?

这是UWP C#应用程序。 我想显示i变量。

    private void btn2_Click(object sender, RoutedEventArgs e)
    {
        for(int i = 0; i<=10000000; i++)
        {
            textBlock2.Text = i.ToString();
        }
    }

但是在我单击按钮后,文本仅在循环结束后更改一次。
如何在每个循环中看到更改文本?

实际上,在执行长循环时,您的UI被冻结,因此屏幕上无法更新任何内容。 试试这个

private async void btn2_Click(object sender, RoutedEventArgs e)
{
    for(int i = 0; i<=10000000; i++)
    {
        textBlock2.Text = i.ToString();
        await Task.Delay(200); //stay 200 ms before showing next number so human eyes can see it.
    }
}

当它执行到该行时await Task.Delay(200); ,循环暂时中止 - 持续200毫秒,UI线程现在有机会处理队列中待处理的绘图任务,包括重新绘制文本块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM