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

c# - Viết hộp văn bản trong luồng (TASK) của ứng dụng WPF

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 19:48:28 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi có một chương trình (trong ứng dụng WPF) nhận thông tin từ cổng COM thông qua một chuỗi. Đây là một phần của nó:

Dữ liệu nhận tác vụ không đồng bộ tĩnh (cổng SerialPort)
{
thử
{
Thread.Sleep(50); // Thời gian đọc tác phẩm
đang chờ port.BaseStream.ReadAsync(buffer, 0, 55); // Chờ nhận dữ liệu từ Cổng nối tiếp

textBox.AppendText("Test");
}
}

Vấn đề này phát sinh vì việc viết vào hộp văn bản có thể thực hiện được trong tác vụ này. Tôi có một loạt các hộp văn bản khác bên ngoài và nó hoạt động tốt. Lỗi hiển thị là:

Cần phải có tham chiếu đối tượng cho trường, phương thức hoặc thuộc tính không tĩnh 'MainWindow.textBox'

Nếu tôi thay đổi tác vụ thành công khai thì lỗi sẽ biến mất nhưng khi tôi xây dựng chương trình thì văn bản không xuất hiện trong hộp.

Tôi biết thông báo là về dấu ngoặc kép, nhưng có vẻ như phần này ổn, tôi nghĩ đó là về việc làm cho hộp văn bản có thể truy cập công khai.

Tôi đã thay đổi mã chỉ thành:

Dữ liệu nhận tác vụ không đồng bộ (cổng SerialPort)

Lỗi sau xảy ra khi xuất:

Ngoại lệ được đưa ra: 'System.InvalidOperationException' trong WindowsBase.dll

Lỗi là: "" Chuỗi cuộc gọi không thể truy cập đối tượng này vì một chuỗi khác sở hữu nó. "

---------- Được giải quyết bởi @BrandonKramer ---------- Sử dụng:

 Dispatcher.BeginInvoke((Action)(() => textBox.AppendText("Test")));

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

Lỗi của bạn là do các thành phần giao diện người dùng (chẳng hạn như TextBox) chỉ có thể được sửa đổi từ chuỗi giao diện người dùng.

Để khắc phục điều này, hãy thay đổi:

textBox.AppendText("Test");

đến

Dispatcher.BeginInvoke((Action)(() => textBox.AppendText("Test")));

Điều này sẽ dẫn đến textBox.AppendText("Test"); Thực thi trên luồng giao diện người dùng, không phải trên luồng nền nơi tác vụ của bạn đang thực thi.

Về C# - Viết hộp văn bản trong một chuỗi (TASK) trong ứng dụng WPF, 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/42539700/

hai mươi bốn 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