cuốn sách gpt4 ai đã làm

c# - "Không thể truy cập đối tượng đã xử lý" khi kiểm tra IsDispose và Disposition

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 20:21:37 26 4
mua khóa gpt4 Nike

Khi ứng dụng nhận được cuộc gọi từ dịch vụ, nó sẽ mở một biểu mẫu cho mỗi cuộc gọi. Người dùng phải nhập vào từng cửa sổ và đóng nó lại. Để giúp công việc của người dùng diễn ra suôn sẻ, tôi đang cố gắng kích hoạt lại cửa sổ mà người dùng đang làm việc khi cửa sổ tiếp theo hiển thị.

Đây là cách thực hiện việc này:

khoảng trống riêng tư ActivatePreviousActiveForm() {

if (_activeWhenOpen != null && _activeWhenOpen.InvokeRequired) {
if (!_activeWhenOpen.Disposing || !_activeWhenOpen.IsDispose)
_activeWhenOpen.Invoke((MethodInvoker)ActivatePreviousActiveForm);
} else
if (_activeWhenOpen != null && !(_activeWhenOpen là FrmRuntimeError))
_activeWhenOpen.Activate();
}

Đôi khi nó đưa ra thông báo "không thể truy cập đối tượng đã xử lý" khi đến dòng

if (!_activeWhenOpen.Disposing || !_activeWhenOpen.IsDispose)

Có ai biết tại sao điều này lại xảy ra?

câu trả lời hay nhất

cố gắng đảo ngượcnếu nhưtình trạng:

dòng này

if (!_activeWhenOpen.Disposing || !_activeWhenOpen.IsDispose)

phải trở thành

if (!_activeWhenOpen.IsDispose || !_activeWhenOpen.Disposeing)

Điều này là do các điều kiện được kiểm tra theo thứ tự ghi nên mã của bạn có thể gọi Xử lý, gây ra lỗi.

biên tập:

Tôi cũng nghĩ bạn nên || Thay đổi thành && , bởi vì nếu cửa sổ của bạn không được xử lý mà ở trạng thái Xử lý, bạn có thể gặp sự cố.

Về C# - "Không thể truy cập một đối tượng đã được xử lý" khi kiểm tra IsDispose và Disposition, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/13161115/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress