簡體   English   中英

按鈕計數器 Windows Forms

[英]Button counter Windows Forms

我想問你關於更正我的代碼的問題。 我想在點擊按鈕文本后創建一個按鈕,每秒都會改變(異步)。 這段代碼是正確的還是我應該以不同的方式做?

  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.com/en-us/dotnet/api/system.linq.enumerable.range?view=netframework-4.8

TL:DR,它定義了一個范圍,從第一個參數開始,到最后一個參數結束。

而不是做

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

你可以通過做來簡化它

Task.Delay(1000)

文檔: https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.delay?view=netframework-4.8

除此之外......它工作正常嗎? 它是可讀的,這很重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM