У меня есть поток, который читает многоадресные данные и обновляет определенные структуры данных
, и другой поток, который обрабатывается 3d-библиотекой chai
, когда я просто запускаю код своей библиотеки, он работает нормально.
когда я запускаю y thread также
Я получаю нарушение прав доступа в одной из подпрограмм внутри кода chai3d.
мой код потока
unsigned int __stdcall ThreadFunc(void* data)
{
char *timeOld;
int ID;
while(1)
{
char *position = _com_util::ConvertBSTRToString(cpi->getData());
ID = cpi->getMulticastDataID();
char* timeNew = _com_util::ConvertBSTRToString(cpi->getTime());
if(timeFirst == true)
{
timeOld = new char[strlen(timeNew) + 1];
strcpy(timeOld,timeNew);
timeFirst = false;
}
if((strcmp(timeNew,timeOld) != 0) && (AddItselToList == true) && ( ID != 99))
{handlePacket(position,ID);
strcpy(timeOld,timeNew);}
delete[] position;
delete[] timeNew;
}
delete[] timeOld;
}
cpiуказатель на объект com c #, где getdata, gettime возвращают строки и getmulticastid возвращает int.
что-то не так с моим кодом потока?
_beginthreadex(NULL,0,ThreadFunc,NULL,0,NULL);