Tôi đang cố gắng cập nhật một hộp văn bản. Tôi nghĩ rằng mã luồng của tôi sẽ khắc phục vấn đề, nhưng nó không. Bất cứ ai có thể giúp đỡ với điều này?Lỗi đa luồng trong C#
new Thread((ThreadStart)delegate { txtCapacitance.Text = Math.Round(capacitance, 3).ToString(); }).Start();
Cung cấp cho các lỗi sau:
Cross-thread operation not valid: Control 'txtCapacitance' accessed from a thread other than the thread it was created on.
Lưu ý rằng tất cả điều này đã được bắt đầu bởi một hàm dataReceived được gọi là bất cứ khi nào dữ liệu USB được nhận.
Điều này sẽ không khắc phục được sự cố. Nhân viên nền vẫn chạy trên một luồng khác với chuỗi giao diện người dùng. –
@Marcelo Cantos, Bạn đã đọc tài liệu chưa? * Bạn phải cẩn thận không thao tác với bất kỳ đối tượng giao diện người dùng nào trong trình xử lý sự kiện DoWork của bạn. Thay vào đó, hãy liên lạc với giao diện người dùng thông qua các sự kiện ProgressChanged và RunWorkerCompleted. * –
bạn nói đúng; Tôi đã sai; lời xin lỗi của tôi. Tôi nhầm lẫn điều này với một hồ bơi thread bình thường. –