Trong một dự án WinForms VB.NET tôi nhận được một ngoại lệKhông thể truy cập đối tượng được xử lý - Cách khắc phục?
Không thể truy cập một đối tượng xử lý
khi đóng một biểu mẫu. Nó xảy ra rất hiếm khi và tôi không thể tái tạo nó theo yêu cầu. Theo dõi ngăn xếp trông giống như sau:
Cannot access a disposed object. Object name: 'dbiSchedule'.
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.PointToScreen(Point p)
at Dbi.WinControl.Schedule.dbiSchedule.a(Boolean A_0)
at Dbi.WinControl.Schedule.dbiSchedule.a(Object A_0, EventArgs A_1)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
DbiSchedule là điều khiển lịch từ công nghệ Dbi. Có một bộ đếm thời gian trên biểu mẫu cập nhật lịch biểu trên màn hình vài phút một lần.
Bất kỳ ý tưởng nào gây ra ngoại lệ và cách tôi có thể khắc phục sự cố đó? hoặc thậm chí chỉ có thể tạo lại nó theo yêu cầu?
Hej! Cảm ơn tất cả các câu trả lời. Chúng tôi ngừng Timer trên sự kiện FormClosing và chúng tôi kiểm tra các tài sản IsDisposed trên thành phần lịch trình trước khi sử dụng nó trong sự kiện Timer Tick nhưng nó không giúp đỡ.
Đó là một vấn đề thực sự gây phiền nhiễu vì nếu ai đó đã đưa ra giải pháp đã hoạt động - tôi sẽ không thể xác nhận giải pháp vì tôi không thể tạo lại sự cố theo cách thủ công.
Kiểm tra IsDisposed sẽ giảm, nhưng không loại bỏ được sự cố. Giải pháp đúng là dừng hẹn giờ trước khi đóng biểu mẫu. –