2011-01-21 29 views
10

Nói cách đơn giản:BackgroundWorker RunWorkerCompletedEventArgs.Cancelled luôn sai

tôi hủy bỏ hoạt động của tôi bằng cách gọi phương thức CancelAsync() trên BackgroundWorker, và khi thực hiện rơi vào trường hợp RunWorkerCompleted, tài sản Cancelled trên RunWorkerCompletedEventArgs là sai. Tôi không thể tìm ra khi nào hoặc ở đâu tôi nên đặt nó thành true, vì đây là một tài sản EventArgs.

Có ai có thể giúp tôi một chút không? Ngoài ra, xin lỗi nếu nó là một bản sao, nhưng tôi không thể tìm thấy bất kỳ câu hỏi nào về điều này.

Trả lời

15

Từ MSDN:

Thuộc tính hủy của RunWorkerCompletedEventArgs cho biết một yêu cầu hủy được xử lý bởi các hoạt động nền.

Nếu mã của bạn trong xử lý sự kiện DoWork phát hiện một yêu cầu hủy bằng cách kiểm tra cờ CancellationPending và thiết Hủy cờ của DoWorkEventArgs true, cờ hủy của RunWorkerCompletedEventArgs cũng sẽ được thiết lập là true .

+2

Bây giờ tôi chỉ cảm thấy ngớ ngẩn. Tôi đã đọc chủ đề của MSDN trên BackgroundWoker. Nhưng có lẽ tôi không đọc chủ đề của RunWorkerCompletedEventArgs. Dù sao, cảm ơn rất nhiều cho câu trả lời rõ ràng nhanh chóng. – Smur

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