![]() |
|
![]() ![]() ![]() |
|
Курсант |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Всем доброго времени суток.
Пишу программу, которая должна общаться по COM-порту с устройством. Добавил в программу элемент serialPort, открыл - всё нормально. Но при подключении к компьютеру устройства программа завершается с ошибкой "Попытка доступа к элементу textBox1 не из того потока, в котором он был создан". Обработчик получения данных для serialPort1 следующий:
Всё, что мне удалось нагуглить - это то, что проблема в так называемой потокобезопасности. Но все примеры решения, которые я нашёл, написаны для С#. Вопрос - как мне добавлять данные из serialPort1 в textBox1. |
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: нет Всего: 17 |
Правильно, доступ к GUI элементам возможен только из GUI-потока. Проблема решается в зависимости от библиотеки, например с помощью посылки сообщения или вызова метода из другого потока через специальный хэндлер/диспетчер. Судя по коду, это C++/CLR, значит смотреть надо в сторону Dispatcher.Invoke.
|
|||
|
||||
Курсант |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 338 Регистрация: 21.2.2009 Где: Балашиха или Воро неж Репутация: нет Всего: 4 |
Спасибо, разобрался. Хорошо разобран вопрос вот здесь: https://msdn.microsoft.com/ru-ru/library/zy...(v=vs.110).aspx
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |