tôi có một lớp trong C# (.net 3.5 cp, vs2010) thực hiện các sự phức tạp phức tạp mà thường mất nhiều thời gian. Sau một phút có một ngoại lệ, ContextSwitchDeadlock đã được phát hiện. Ngoại lệ được bản địa hóa, thành ngôn ngữ không phải tiếng Anh của tôi nên tôi không thể sao chép được, nhưng ý nghĩa như sau: ¨ Mô-đun CLR không thể chuyển từ ngữ cảnh COM ... sang ngữ cảnh COM ... trong 60 giây. Các tiểu dự án sở hữu bối cảnh/căn hộ mục tiêu có thể đang chờ đợi hoặc xử lý một hoạt động chạy rất dài mà không cần bơm thông điệp hệ thống Windows..NET - ContextSwitchDeadlock đã được phát hiện
Về cơ bản, có vẻ như ứng dụng của tôi đang tính toán và không phản hồi cửa sổ trong một thời gian dài và studio trực quan tắt nó và báo cáo bế tắc có thể xảy ra.
Tôi đã cố gắng để làm một số nghiên cứu và phát hiện hai giải pháp:
Tắt một số tùy chọn trong debbuger visual studio để phát hiện sự bế tắc. Dost không làm việc cho tôi bởi vì nó chỉ cho phép gỡ lỗi.
Gọi một số phương thức DoEvents, nhưng nó dành cho biểu mẫu cửa sổ chứ không phải WPF và tôi đang sử dụng WPF.
Ngoài ra còn có đề xuất tạo chuỗi riêng biệt, nhưng tôi hoàn toàn mới cho luồng và không biết tôi nên làm gì. Bất kỳ đề nghị xin vui lòng?
Cảm ơn bạn, tôi sẽ cố gắng làm việc nền. –