Автор
|
Тема: CreateThread
|
hlod |
опубликован 06-12-2001 20:18 MSK
Я создаю новый поток, передаю ему указатель на функцию. Можно ли в коде этой функции читать данные из сокета не в бесконечном цикле(кста. Может ли бесконечный цикл тормозить работу системы?) а по событиям? Скиньте, плз. линк,где можно об этом почитать, или пример.
|
Eugenix
|
опубликован 11-12-2001 11:02 MSK
>Я создаю новый поток, Используй _beginthread или _beginthreadex вместо CreateThread т.к последняя не инициализирует новый поток в С++ runtime >передаю ему указатель на функцию. >Можно ли в коде этой функции читать данные >из сокета не в бесконечном цикле Что значит не в бесконечном? выдешь из этой функции thread'a и поток закончит жить
>(кста. >Может ли бесконечный цикл тормозить работу >системы?) а по событиям? Скиньте, плз. Если ты про остальные приложения то они будут работать как работали. (Система на то и многозадачная, есть диспечер потоков). Дело в том что ты можеш загрузить проц, на полную... Поэтому желательно ставить Sleep(0) после каждой итерации, чтобы принудительно закончить квант. А вообще тебе нужно почитать книжку Рихтера.
|
hlod
|
опубликован 11-12-2001 20:18 MSK
А че это за книга? |
purpe
|
опубликован 11-12-2001 20:48 MSK
"Windows для профессионалов" автор: Джефри РихтерВ Москве, в Библио Глобусе - 430 рубликов. можно заказать в www.piter.com, но они доставят через 2 месяца 8-0
|
Eam
|
опубликован 12-12-2001 11:24 MSK
>>Может ли бесконечный цикл тормозить работу >>системы?) >Если ты про остальные приложения то они >будут работать как работали. Не скажи, у меня был случай, когда thread, работающий бесконечно и работающий с com-портом съедал ~30% CPU. что сказывалось на других приложениях. Чтобы этого избежать - просто поставил Sleep(10)(можно и 0). |