Автор
|
Тема: "невытесняющая" Многопоточность ;-))
|
Kosha |
опубликован 19-04-2001 02:37 MSK
Народ! Вот тут с вопросиком мучаюсь, чего-то никаких идей нет. А суть вот: Есть пара потоков, и нужно как-то повеселее регулировать распределение времени между ними (кроме как приоритетами) Например, какая-нить функция типа "все,браток, отдай все оставшееся время другому потоку, а я пока поторможу" в Winapi вроде было что-то подобное, но никак не могу найти. Помогите plz!
|
OlegN
|
опубликован 19-04-2001 11:25 MSK
Только при помощи функций Sleep, WaitForSingleObject, WaitForMultipleObjects. А если тебе нужно уснуть, и чтобы сообщения обрабатывались, то используй такой коктейль #define _SLEEP(x) \ { \ HANDLE *pHandles = new HANDLE[1]; \ pHandles[0] = CreateEvent (NULL, FALSE, FALSE, NULL);\ DWORD res = MsgWaitForMultipleObjects (1, pHandles, FALSE, x, QS_TIMER); \ CloseHandle (pHandles[0]); \ delete[] pHandles; \ }; |
Kosha
|
опубликован 20-04-2001 02:13 MSK
Пасибки огромнейшее!!! Sleep()-Rulez ;-) |