Новое в одном потоке и удаление в другом, не разрешено?

Я читаю данные из com-порта . Поскольку я не знаю, когда поступают данные, я постоянно читаю в потоке.

Когда я прочитал достаточно байтов, я сообщаю об этом основному потоку, отправляя сообщение с указателем на строку:

msg[i] = '\0';
completeMsg = new char[i];
strcpy(completeMsg, msg);
PostMessage(hDlg, BT_MSG, NULL, (LPARAM) completeMsg);
i = 0;

Ответ основного потока на это сообщение: SPO.exe.

Это может быть связано с повреждением файла куча, что указывает на ошибку в SPO.exe или любой из загруженных библиотек DLL.

Это также может быть связано с пользователем нажатие F12, когда SPO.exe находится в фокусе.

В окне вывода может быть больше диагностическая информация.

Должен ли я использовать какую-то глобальную переменную или отправить сообщение, чтобы поток чтения обработал удаление? У него нет банкомата с циклом сообщений, поэтому я бы не стал добавлять его только для этого.

6
задан Moberg 9 April 2011 в 21:57
поделиться