我需要创建一个像天文台这样的脚本。
我写了如下代码;
for(int i=0;i<50;i++)
{
textBox.Text = i.Tostring();
Task.Delay(100).Wait();
}
预期的输出就像计时器;文本框中从0开始增加1到49的文本。
但是在49 * 100毫秒暂停之后我只得到49分。
我该如何解决这个问题?
答案 0 :(得分:2)
运行这段代码的事件或方法需要是异步的。这是为了让UI响应:
private async void btnDoWork_Click(object sender, EventArgs e)
{
for(int i=0;i<50;i++)
{
textBox.Text = i.Tostring();
await Task.Delay(100);
}
}
否则,您将阻止UI线程,您将无法看到文本框更改。您只会看到最后一次更改,即49。