C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Загруженность процессора, поток считывания данных грузит проц
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 мс опрос делать не нужно

Вернуться в Вопросы программирования в C++Builder