С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mrak
#1

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

19.07.2010, 14:30. Просмотров 810. Ответов 0
Метки нет (Все метки)

Пишу компоненту для 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++
Как вынести функцию в отдельный файл как в PHP например: Например есть функция int function(){ int a,b,c; a=3; b=5; ...

как вынести класс в отдельный файл? - C++
сделал простенький класс class cool { public: cool(); int ga(); int gb(); void sa(int _a);

Как вынести структуру в отдельный файл - C++
Помогите, пожалуйста. Задали дополнительное задание: вынести структуру в отдельный файл. Я понятия не имею как это делать. #include...

Как вынести реализацию методов шаблонного класса в отдельный файл? - C++
Как вынести реализацию методов шаблонного класса в отдельный файл, описание шаблонного класса в .h а реализацию хотелось бы сделать в...

Не получается вынести класс в отдельный файл - C++
Добрый вечер. Не получается вынести код в отдельный файл. есть заголовочный файл, и есть файл с методами. При компиляции выдает ошибку...

Нужно вынести часть программы в отдельный модуль - C++
Помогите вынести 19-36 строки в отдельный модуль, чтобы можно было потом как заголовочный файл .h его подключить #define...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2010, 14:30
Привет! Вот еще темы с ответами:

Раздельная компиляция: вынести вектор в отдельный модуль - C++
Всем привет! Лазил я в гугле и наткнулся на тему по раздельной компиляции. Там был пример, в отдельный модуль, выносились глобальные...

Вынести код создания списка в отдельный модуль - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; struct A { int key; }; class List { public:

Не собирается проект, если main вынести в отдельный модуль - C++
list.h #ifndef LISTCLASS_H #define LISTCLASS_H class list{ private: int myValue; list * myNext; public:

Вынести в отдельный список все отрицательные элементы исходного - C++
Здравствуйте. Помогите пожалуйста решить задачу. Набросок есть, но программа не работает. Предположим, что уже построен и задан...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.