Tôi có một câu hỏi phong cách về sự lựa chọn thực hiện chủ đề nền mà tôi nên sử dụng trên một ứng dụng biểu mẫu windows. Hiện tại tôi có một BackgroundWorker
hình thức có một (while(true))
vòng lặp vô hạn . Trong vòng lặp này, tôi sử dụng WaitHandle.WaitAny
để giữ cho chủ đề báo lại cho đến khi điều gì đó quan tâm xảy ra. Một trong những sự kiện xử lý mà tôi chờ đợi là một StopThread
sự kiện "" để tôi có thể thoát ra khỏi vòng lặp. Sự kiện này được báo hiệu khi từ ghi đè của tôi Form.Dispose()
.
Tôi đã đọc ở đâu đó BackgroundWorker
thực sự dành cho các hoạt động mà bạn không muốn kết nối UI và có một kết thúc hữu hạn - như tải xuống một tệp hoặc xử lý một chuỗi các mục. Trong trường hợp này, "kết thúc" là không xác định và chỉ khi cửa sổ được đóng lại. Vì vậy, nó sẽ thích hợp hơn cho tôi để sử dụng một Chủ đề nền thay vì BackgroundWorker
cho mục đích này?