我想制作一个每0.1秒更新textBox
中的文本的表单应用程序
所以我做到了:
private void Start_Stop_Click(object sender, EventArgs e)
{
double x;
while (true)
{
x = x + 0.00522222222222222222222222222222;
y.Text = x.ToString();
Thread.Sleep(100);
}
}
但是当我运行程序时,它冻结了
(我在控制台应用程序中几乎编写了确切的程序,并且运行平稳)。
最佳答案
尽管意义不大,但您可以使用Task.Delay
实现所需的功能。它将异步地将控制权交还给UI消息循环(内部,它使用计时器):
private bool shouldIterate;
private async void StartStopClick(object sender, EventArgs e)
{
if (shouldIterate)
{
shouldIterate = false;
return;
}
shouldIterate = true;
while (shouldIterate)
{
x = x + 0.00522222222222222222222222222222;
y.Text = x.ToString();
await Task.Delay(100);
}
}
尽管我建议您将时间间隔设置为更合理的时间。
关于c# - 如何运行while循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31500796/