Tôi đang làm việc trong C# và WPF, rất mới cho cả hai.Làm cách nào để hiển thị tiến trình trong một vòng lặp bận?
Tôi có một vòng lặp đọc nhiều dữ liệu từ một nguồn bên ngoài. Quá trình này mất khoảng 20 giây và tôi muốn hiển thị tiến trình cho người dùng. Tôi không cần bất kỳ thanh tiến trình ưa thích nào, vì vậy tôi đã chọn âm mưu tiến bộ của mình trong một nhãn sẽ nói "Step 1/1000", sau đó đổi thành "Step 2/1000", v.v.
Mã của tôi trông giống như điều này:
// "count" is the number of steps in the loop,
// I receive it in previous code
String countLabel = "/"+count.ToString();
for (i = 0; i < count; i++)
{
... do analysis ...
labelProgress.Content = "Step "+i.ToString()+countLabel
}
Tuy nhiên, trong quá trình phân tích màn hình bị "kẹt" và tiến trình không hiển thị dưới dạng tiến. Tôi hiểu hành vi này từ quá khứ của tôi trong C++, nơi tôi có thể có một chuỗi riêng biệt hiển thị thanh tiến trình nhận thông báo từ vòng lặp hoặc một số hình thức repaint/refresh hoặc buộc cửa sổ/ứng dụng xử lý hàng đợi tin nhắn của nó.
Cách thích hợp để thực hiện điều đó trong C# là gì? Tôi không gắn liền với nhãn, vì vậy nếu có một màn hình tiến bộ-bar sổ popup đơn giản tôi có thể sử dụng thay vì nhãn này nó cũng sẽ là tuyệt vời ...
Cảm ơn
này có thể giúp cho bạn , ** Thử nghiệm 100% ** http://stackoverflow.com/a/42995210/6863414 –