动画数字计数器 c# - Windows Forms

Animated number counter c# - Windows Forms

我想用 C# 实现一个动画数字计数器。 有很多 material 可用于 JS - CSS 和 java ,但用于 c# 的不多。 我尝试了以下代码:

  for (int i = 0; i<value; i++)
        {
            lblCounterDis.Text = i.ToString();
            i++;
            Thread.Sleep(5);
        }

使用这个脚本我只冻结应用程序几秒钟。 我应该使用一些 BackgroundWorker 吗?还有更高级的方法吗?

您可以使用 await/async 来防止冻结

private async void button1_Click(object sender, EventArgs e)
{
    await UpdateLabelAsync();
}


private async Task UpdateLabelAsync()
{
    for(int i = 0; i < 1000; i++)
    {
        label1.Text = i.ToString();
        await Task.Delay(100);
    }
}

请注意,我在此示例中使用了 .net 6。 不确定它是否也适用于 .net 框架。