Chúng tôi có một vấn đề rất phức tạp interop trong đó các chủ đề được sử dụng để khởi tạo một hệ thống bên thứ 3 phải là cùng một thread được sử dụng để chấm dứt nó. Không làm được điều này dẫn đến bế tắc. Chúng tôi đang thực hiện interop từ một dịch vụ WCF được lưu trữ trong IIS. Hiện tại việc dọn dẹp này được thực hiện để xử lý và thường hoạt động rất tốt. Thật không may, dưới tải nặng IIS sẽ làm một unload unload và chúng tôi không bao giờ nhận được để gọi vứt bỏ. Chúng ta có thể chuyển logic shutdown thành một finalizer quan trọng nhưng điều đó không giúp ích gì vì chúng ta không còn quyền truy cập vào thread khởi tạo nữa! Tại thời điểm này, truy vấn duy nhất của chúng tôi dường như đang thông báo cho CLR rằng AppDomain hiện có khả năng ở trạng thái bị hỏng. Tuy nhiên, tôi không chắc chắn làm thế nào để làm điều đó (hoặc nếu nó thậm chí có thể). Có thể đây là tiện ích của các hợp đồng ở cấp lớp nhưng tôi thừa nhận rằng tôi không thực sự hiểu đầy đủ về những hợp đồng đó.CERs có thể được sử dụng để đảm bảo rằng quyết toán không bao giờ được gọi?
CHỈNH SỬA: Ngoài ra, điều này có thể được xem dưới dạng sự cố mối quan hệ chuỗi trong trình hoàn thiện. Nếu ai có giải pháp thông minh, tôi là tất cả các tai :)
Thành phần bạn đang xử lý với nguồn gốc hoặc được quản lý? – JaredPar
Gốc. Đó là một api cho một hệ thống với quản lý bộ nhớ riêng của nó, vv – Jeff