| 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 мс опрос делать не нужно | 
|  |