| Автор
| Сообщение |
|
|
|
Цитата |
|
Здравствуйте, господа.
Какие идеи вы могли бы посоветовать для реализации следующей задачи:
имеется поток, в котором постоянно выполняется проверка какого-то условия.
while true do
if Condition then DoSomething;
Как можно управлять этим потоком, чтобы он не слишком сильно загружал процессор ? Сначала хотел сделать проверку условия по таймеру, но проблема в том, какой интервал установать у таймера. Если сделать слишком маленький интервал, то поток не успеет обработать проверку условия. А делать большой интервал - непонятно как, незнаю насколько большим его нужно сделать, так как проверка условия может занимать очень малое, а может очень большое количество процессорного времени (непредсказуемо). Хотелось бы использовать какой-нибудь альтернативный способ для управления процессорным временем, выделяемым потоку. |
|
| В начало |
|
 |
|
|
 |
 NikotiN
Розовый мамонт

Возраст: 26
Знак зодиака: 
Зарегистрирован: 18.03.2005
Сообщения: 2137
|
|
|
Цитата |
|
ммм процессорным временем управлять можно через приоритеты.
а тебе надо, имхо, немного другое: сделать так чтоб программа не грузила проц. можно например processmessages вызывать. или while true заменить |
|
| В начало |
|
 |
|
|
|
Цитата |
|
Да, ProcessMessages - то, что надо.
Почему-то забыл об этом.
Спасибо. |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Хотел бы задать еще один вопрос - если я создаю поток в программе с помощью New-- Thread Object, как ему установить приоритет ? |
|
| В начало |
|
 |
 NikotiN
Розовый мамонт

Возраст: 26
Знак зодиака: 
Зарегистрирован: 18.03.2005
Сообщения: 2137
|
|
|
Цитата |
|
| там свойство есть у потока, какое не помню. кажись setprior* |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Так оно и есть. Все работает. Спасибо. |
|
| В начало |
|
 |
|