Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как создаются threads

14K
22 января 2006 года
dehan
5 / / 22.01.2006
расскажите (код) по человечески как их создать
14K
22 января 2006 года
dehan
5 / / 22.01.2006
ок, нашел. Но проблема в следующем:
недавно перешел с делфи на vc++, пытаюсь создать чат для локалки.
Проблема в приеме данных. Сначала они принимались с помощью таймера, затем решил сделать с дополнительным потоком, вот код:

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 1;
}
else return 0;
}

DWORD WINAPI ThreadProc(LPVOID lParam)
{
while (doTimer == TRUE)
{
ReceiveData();
}
return 0;
}

doTimer ставится в FALSE при WM_DESTROY окна.
ПОТОК ГРУЗИТ ПРОЦ НА 100% КАК ИЗБЕЖАТЬ ЭТОГО?
324
23 января 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by dehan
ок, нашел. Но проблема в следующем:
недавно перешел с делфи на vc++, пытаюсь создать чат для локалки.
Проблема в приеме данных. Сначала они принимались с помощью таймера, затем решил сделать с дополнительным потоком, вот код:

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 1;
}
else return 0;
}

DWORD WINAPI ThreadProc(LPVOID lParam)
{
while (doTimer == TRUE)
{
ReceiveData();
}
return 0;
}

doTimer ставится в FALSE при WM_DESTROY окна.
ПОТОК ГРУЗИТ ПРОЦ НА 100% КАК ИЗБЕЖАТЬ ЭТОГО?



Тебе надо принимать данные по событию (оптимально) или поставь задержку в потоке на проверку

14K
23 января 2006 года
dehan
5 / / 22.01.2006
Цитата:
Originally posted by AndreySar
Тебе надо принимать данные по событию (оптимально) или поставь задержку в потоке на проверку



дык вот я не знаю, как так принимать по событию. строки не напишешь?
я кроме создания потоков-то ничего не знаю как с ними работать

534
26 января 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by dehan
дык вот я не знаю, как так принимать по событию. строки не напишешь?
я кроме создания потоков-то ничего не знаю как с ними работать



void ReceiveData()
{
if (!WSAEventSelect(mainsocket, we, FD_READ) )
{
WSAWaitForMultipleEvents(1, &we, FALSE, dwTimeout, FALSE) ;
if (recv(mainsocket, ttr, 300, 0) == SOCKET_ERROR)
{
return;
}
SendMessage(edit2, WM_SETTEXT, 0, (LPARAM)ttr);
_strset(ttr, ' ');
return 1;
}
else
return 0;
}

DWORD WINAPI ThreadProc(LPVOID lParam)
{
while (doTimer == TRUE)
{
ReceiveData();
}
return 0;
}

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог