Tôi đã có lỗi thực sự, thực sự kỳ lạ mà tôi chưa bao giờ có thể ghim xuống (điều đó xảy ra rất hiếm khi). Về cơ bản, tôi có một ứng dụng C# ngẫu nhiên ném một ngoại lệ không xác định khi thoát. Tôi đã quản lý để nắm bắt nó trong trình gỡ lỗi thời gian này, và nó chỉ ra rằng gọi Application.Exit()
là ném một System.InvalidOperationException
với thông báo sau:System.InvalidOperationException do sửa đổi bộ sưu tập khi gọi đến Application.Exit()
Một ngoại lệ cơ hội đầu tiên của loại 'System.InvalidOperationException' xảy ra trong mscorlib. dll
Thông tin bổ sung: Bộ sưu tập đã được sửa đổi; hoạt động điều tra có thể không thực hiện được.
Tôi không chắc chắn những gì bộ sưu tập này đã bị cáo buộc sửa đổi hoặc ai đã sửa đổi bộ sưu tập đó.
Các vết đống không phải là rất hữu ích:
mscorlib.dll System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext() + 0x13f byte System.Windows.Forms.dll System.Windows!. Forms.Application.ExitInternal() + 0x112 byte System.Windows.Forms.Application.Exit System.Windows.Forms.dll! (System.ComponentModel.CancelEventArgs e) + 0x65 byte
Bất kỳ ý tưởng làm thế nào tôi có thể tìm ra ArrayList nào mà nó đã được sửa đổi? Tôi không nghĩ rằng đó là bất cứ điều gì tôi đang làm một cách rõ ràng, nhiều khả năng một hành động tôi đang làm đó là sửa đổi trạng thái cơ bản của khung công tác .NET ở giữa một hoạt động mà MS không mong đợi ..
Có vẻ như bộ sưu tập Biểu mẫu. IIRC Tôi đã thấy điều này xảy ra trước đây, nhưng không thể nhớ bất kỳ chi tiết nào, xin lỗi. – leppie
Ứng dụng của bạn làm gì khi tắt máy? Bạn có thể vui lòng cung cấp mã không. – Fischermaen
Không có gì, thực sự ... Vào thời điểm tôi nhấn nút thoát, ứng dụng ở trạng thái không hoạt động, không có chủ đề nền hoặc hoạt động nào đang chạy. –