Vì vậy, tôi có nhãn ở đây (""). Khi nút (button1) được nhấp, văn bản nhãn sẽ chuyển thành "Kiểm tra". Sau 2 giây, văn bản được đặt lại thành "". Tôi đã thực hiện công việc này với bộ hẹn giờ (có khoảng thời gian là 2000):Sử dụng không đồng bộ để ngủ trong một chủ đề không có đóng băng
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Test";
timer.Enabled = true;
}
private void timer_Tick(object sender, EventArgs e)
{
label1.Text = "";
}
Tác phẩm này; Tuy nhiên, tôi tò mò về việc làm cho nó hoạt động trong một phương pháp async.
Mã của tôi trông giống như hiện nay:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Test";
MyAsyncMethod();
}
public async Task MyAsyncMethod()
{
await Task.Delay(2000);
label1.Text = "";
}
này không hoạt động mặc dù.
Tôi vừa thử phương pháp của bạn và nó hoạt động tốt, khi nhấp vào thay đổi thành "Kiểm tra" 2 giây sau nó thay đổi thành "" –
Bạn có thể giải thích "Điều này không hoạt động" không? Bạn đang mong đợi điều gì và bạn đã quan sát điều gì? Lỗi trình biên dịch? Dấu vết ngăn xếp ngoại lệ? –