Форум программистов, компьютерный форум CyberForum.ru

Как вынести зацикленный опрос компорта в отдельный поток. Помогите начинающему... - C++

Восстановить пароль Регистрация
 
mrak
Сообщений: n/a
19.07.2010, 14:30     Как вынести зацикленный опрос компорта в отдельный поток. Помогите начинающему... #1
Пишу компоненту для 1С. При загрузке компоненты, 1С виснет и циклически опрашивает компорт на получение данных. Как вынести процедуру опроса компорта в отдельный поток?
Опрос делаю так:
Код
VOID CALLBACK ReadData()
{
	DWORD		dwEvtMask;
	DWORD		dwError;
	COMSTAT		csStat;
	OVERLAPPED	o;
	

	int			nCount;
	char		strTemp[128];
	for(nCount=0;nCount<128;nCount++)strTemp[nCount]=0;
	nCount=0;

	o.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

	
	for (; ;)
	{
		ResetEvent(o.hEvent);

	if (!WaitCommEvent(m_hComm, &dwEvtMask, &o))
	{
		Sleep(100);
	}
		if (dwEvtMask & EV_BREAK)break;
		else if (dwEvtMask & EV_RXCHAR)
		if (dwEvtMask & EV_RXCHAR)
		{
			ClearCommError(m_hComm,&dwError, &csStat);
			ResetEvent(o.hEvent);
			
			unsigned long int x;
			char c;
			for (UINT i = 0; i < 7; i++)
			{
				ReadFile(m_hComm, &c, 1, &x, NULL);

				if(c==char(13))
				{
					CString s_kod = strTemp;
					
					CString csSource('Scan'),csMessage('Code'),csData;
					csData = s_kod;
					if (pAsyncEvent)
					pAsyncEvent->ExternalEvent(csSource.AllocSysString(),
                                 csMessage.AllocSysString(),
                                 csData.AllocSysString());        
					for(nCount=0;nCount<128;nCount++)strTemp[nCount]=0;
					nCount=0;
					
				}
				else
				{
					strTemp[nCount] = c;
					nCount++;
				}
			}
		}
	}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2010, 14:30     Как вынести зацикленный опрос компорта в отдельный поток. Помогите начинающему...
Посмотрите здесь:

C++ Помогите начинающему программисту...
помогите совсем начинающему C++
Помогите начинающему C++
как вынести класс в отдельный файл? C++
C++ Как вынести реализацию методов шаблонного класса в отдельный файл?
Как вынести функцию с++ в отдельный файл C++
C++ Нужно вынести часть программы в отдельный модуль
Не получается вынести класс в отдельный файл C++
Не собирается проект, если main вынести в отдельный модуль C++
Создать отдельный управляемый поток для бесконечного процесса C++
Как вынести структуру в отдельный файл C++
Вынести код создания списка в отдельный модуль C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru