[英]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.