按钮计数器 Windows表格

我想请教一下我的代码的修正,我想创建一个按钮,在点击按钮后,文字每秒都会改变(异步),这个代码是正确的,还是我应该用不同的方法?

  public partial class Form1 : Form
{
    public List<int> figures = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    public Form1()
    {
        InitializeComponent();
    }

    private async void button1_ClickAsync(object sender, EventArgs e)
    {
        foreach(var figure in figures)
        {
            await TimeSleeper(figure);
        }

    }
    public async Task TimeSleeper(int figure)
    {
        button1.Text = figure.ToString();
        await Task.Run(() => Thread.Sleep(1000));
        button1.Refresh();
    }    
}

解决方案:

我想,完美是在观察者的眼睛。但这并不是一个真正漂亮的方式来做:P

与其定义列表 “数字”,你可以用以下方法来代替

IEnumerable.Range(1, 10)

文档。https:/docs.microsoft.comen-usdotnetapisystem.linq.enumerable.range?view=netframework-4.8。

TL:DR,它定义了一个从第一个param开始,到最后一个param结束的范围。

而不是做

Task.Run(() => Thread.Sleep(1000));

你可以把它简化为

Task.Delay(1000)

文档。https:/docs.microsoft.comen-usdotnetapisystem.threading.tasks.task.delay?view=netframework-4.8。

除此以外……就可以了吧?而且它是可读的,这才是最重要的。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

RequestBody没有正确映射有对象列表的对象。

2022-4-20 15:09:07

解决方案

我的验证损失为1.86,我应该如何减少它?

2022-4-20 16:09:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索