2012-02-09 26 views
6

Tôi có quy trình thực hiện thời gian theo số DoWork trong số BackgroundWorker của mình.Làm thế nào để hủy bỏ ngay lập tức một BackgroundWorker làm việc?

Bất cứ khi nào tôi cố gắng Hủy công việc theo số backgroundWorker1.CancelAsync(), số backgroundWorker1.CancellationPending trở thành Đang chờ xử lý và tôi phải đợi lần lặp tiếp theo trong số DoWork để hủy công việc và tự mình thoát khỏi công việc.

Có cách nào để hủy công việc ngay sau khi gọi không?

+6

Kiểm tra việc hủy Gửi tiền thường xuyên hơn? – dtb

Trả lời

7

Không. Nói chung bạn không thể chấm dứt một cách an toàn một chuỗi "ngay lập tức", vì nó có thể đang giữ tài nguyên bị rò rỉ và quan trọng hơn là nó có thể giữ khóa. Bạn cần cấu trúc nhân viên của mình để tôn trọng cờ hủy và thoát ra một cách an toàn càng sớm càng tốt.

Các vấn đề liên quan