Не работает с приоритетами и т. Д. Если у вас есть 1 поток в вашей системе, который говорит: «У меня есть работа, позвольте мне работать», и нет других конкурирующих потоков, окна будут продолжать его планировать.
Вы указываете, что этот поток получает информацию с веб-сервера. Предположительно, он, по крайней мере, блокируется во время ожидания ответа от сервера, так что, надеюсь, не использует CPU в это время. К сожалению, это звучит так, как будто вы опрашиваете информацию, поэтому Thread.Sleep
может быть лучше здесь - если только нет какого-то другого внеполосного сигнала, который мог бы сообщить потоку, когда он должен сделать следующий опрос.
Если веб-сервер «знает», когда поток должен выполнить следующий опрос, можно надеяться, что он может быть изменен для включения такой информации в свои ответы. Затем вы можете извлечь эту информацию из ответа и, по крайней мере, установить для ваших Sleep
периодов подходящее значение.
В качестве альтернативы, если другой поток получит информацию из другого места, которая указывает, что должен быть выполнен новый запрос, тогда вместо Thread.Sleep
следует использовать Событие (например, AutoResetEvent
) и WaitOne
для этого сигнала, снова указав подходящий период ожидания. Таким образом, что-то еще может разбудить эту спящую нить всякий раз, когда они думают, что опрос должен снова произойти.