C.H. |
Отправлено: 23.01.2006, 10:19 |
|
Не зарегистрирован
|
недавно перешел с делфи на vc++, пытаюсь создать чат для локалки.
Проблема в приеме данных. Сначала они принимались с помощью таймера, затем решил сделать с дополнительным потоком, вот код:
CODE | void ReceiveData()
{
if (WSAEventSelect(mainsocket, we, 0) == 0);
{
if (recv(mainsocket, ttr, 300, 0) == SOCKET_ERROR) return;
}
SendMessage(edit2, WM_SETTEXT, 0, (LPARAM)ttr);
_strset(ttr, ' ');
return;
}
DWORD WINAPI ThreadProc(LPVOID lParam)
{
while (doTimer == TRUE)
{
ReceiveData();
}
return 0;
}
|
doTimer ставится в FALSE при WM_DESTROY окна.
ПОТОК ГРУЗИТ ПРОЦ НА 100% КАК ИЗБЕЖАТЬ ЭТОГО?
Отредактировано Konstantine — 23/01/2006, 11:28 |
|
Konstantine |
Отправлено: 23.01.2006, 11:27 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
поток-то зациклен...
после вызова ReceiveData(); поставить Sleep(200)
|
|
C.H. |
Отправлено: 23.01.2006, 16:03 |
|
Не зарегистрирован
|
тогда получится в принципе тот же таймер |
|
Konstantine |
Отправлено: 23.01.2006, 16:42 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
так у Вас и получается что проц тольок и делает что опрашивает сервер... а зачем??? реально для чата быстрее 200 мс опрос делать не нужно
|
|