Tôi có một chuỗi công nhân rất quan trọng cho đơn xin của tôi.
Nó được tạo ra với new Thread(method).Start();
Tôi không tham gia, tôi chỉ mong đợi điều đó sẽ chạy miễn là chương trình của tôi chạy.
Tuy nhiên, nó có thể xảy ra rằng có một ngoại lệ bị bắt trên chủ đề này; và như một kết quả, thread sẽ (bên cạnh một số lần đăng nhập cuối cùng) tắt máy. Không thể khôi phục được lỗi nghiêm trọng này. Kể từ khi thread là rất quan trọng cho các ứng dụng, nó đã tắt máy, quá.Làm thế nào để theo dõi một sợi công nhân quan trọng
Bây giờ câu hỏi của tôi là: Làm cách nào để theo dõi trạng thái luồng của tôi?
bạn sẽ
- Thăm dò ý kiến các
IsAlive
bất động sản? - xem xét lại ngoại lệ bị bắt và làm việc với
AppDomain.CurrentDomain.UnhandledException
? - triển khai
event
sẽ báo hiệu kết thúc chuỗi nền của tôi? - sử dụng
BackgroundWorker
, triển khaiRunWorkerCompleted
? (Nhưng là một BackgroundWorker thực sự là sự lựa chọn đúng cho các chủ đề chạy dài?) - một cái gì đó hoàn toàn khác?
EDIT:
Ngay bây giờ, tôi giải quyết vấn đề bằng cách gọi Application.Exit()
->sụp đổ sớm và thường xuyên. Đó là một lựa chọn, quá :)
Nhưng tôi cần một tham chiếu đến một điều khiển - chỉ dành cho purpuse này:/ – tanascius
Một kiểm soát là một cách thuận tiện để thực thi mã trên chuỗi giao diện người dùng. Không phải là cách duy nhất. Thông thường bạn cần phải chuyển trở lại tại một số điểm, tôi có xu hướng thích càng sớm càng tốt. –