Tôi muốn tạo một ứng dụng đếm ngược đơn giản với C# để hiển thị làm ví dụ.C# Đếm ngược đơn giản - Tôi đang làm gì sai?
Đối với phiên bản đầu tiên và cơ bản, tôi sử dụng nhãn để hiển thị thời gian hiện tại còn lại sau vài giây và nút để bắt đầu đếm ngược. Của Nút Bấm-tổ chức sự kiện được thực hiện như thế này:
private void ButtonStart_Click(object sender, RoutedEventArgs e)
{
_time = 60;
while (_time > 0)
{
_time--;
this.labelTime.Content = _time + "s";
System.Threading.Thread.Sleep(1000);
}
}
Bây giờ khi người dùng nhấp vào nút thời gian thực sự là đếm xuống (như đóng băng ứng dụng (do Sleep())) cho số tiền được lựa chọn của thời gian nhưng ngữ cảnh của Nhãn không được làm mới.
Tôi có đang làm điều gì đó không đúng (khi nói đến Chủ đề) hay chỉ là vấn đề với giao diện người dùng?
Cảm ơn câu trả lời của bạn! Bây giờ tôi sử dụng System.Windows.Threading.DispatcherTimer để làm như bạn đã nói với tôi. Tất cả mọi thứ hoạt động tốt nên câu hỏi này được chính thức trả lời;)
Đối với những người quan tâm: Đây là mã của tôi (những phần thiết yếu)
public partial class WindowCountdown : Window
{
private int _time;
private DispatcherTimer _countdownTimer;
public WindowCountdown()
{
InitializeComponent();
_countdownTimer = new DispatcherTimer();
_countdownTimer.Interval = new TimeSpan(0,0,1);
_countdownTimer.Tick += new EventHandler(CountdownTimerStep);
}
private void ButtonStart_Click(object sender, RoutedEventArgs e)
{
_time = 10;
_countdownTimer.Start();
}
private void CountdownTimerStep(object sender, EventArgs e)
{
if (_time > 0)
{
_time--;
this.labelTime.Content = _time + "s";
}
else
_countdownTimer.Stop();
}
}