Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потокобезопасность vs COM-порт в Visual C++, потокобезопасность, serialPort 
:(
    Опции темы
Курсант
Дата 24.7.2015, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Всем доброго времени суток.
Пишу программу, которая должна общаться по COM-порту с устройством. Добавил в программу элемент serialPort, открыл - всё нормально. Но при подключении к компьютеру устройства программа завершается с ошибкой "Попытка доступа к элементу textBox1 не из того потока, в котором он был создан". Обработчик получения данных для serialPort1 следующий:
Код

private: System::Void serialPort1_DataReceived ( трампампам...
{
   textBox1->AddText ( serialPort1->ReadLine () );
}


Всё, что мне удалось нагуглить - это то, что проблема в так называемой потокобезопасности. Но все примеры решения, которые я нашёл, написаны для С#. Вопрос - как мне добавлять данные из serialPort1 в textBox1.
PM ICQ Skype   Вверх
Amp
Дата 24.7.2015, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: нет
Всего: 17



Правильно, доступ к GUI элементам возможен только из GUI-потока. Проблема решается в зависимости от библиотеки, например с помощью посылки сообщения или вызова метода из другого потока через специальный хэндлер/диспетчер. Судя по коду, это C++/CLR, значит смотреть надо в сторону Dispatcher.Invoke.
PM MAIL   Вверх
Курсант
Дата 28.7.2015, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 21.2.2009
Где: Балашиха или Воро неж

Репутация: нет
Всего: 4



Спасибо, разобрался. Хорошо разобран вопрос вот здесь: https://msdn.microsoft.com/ru-ru/library/zy...(v=vs.110).aspx

PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.