Как вы ограничиваете процессор цикла while?Как ограничить использование ЦП в цикле while
В этом случае код, который находится внутри время цикла:
Private Sub wait(ByVal time)
Dim sw As New Stopwatch
sw.Start()
Do While sw.ElapsedMilliseconds < time And StillOpen = True
Application.DoEvents()
Loop
sw.Stop()
End Sub
Но теперь, вот вопрос. Этот цикл позволяет циклу while запускаться каждую секунду, один раз в секунду, а подставка wait
вызывает эту задержку, как и должно быть.
Как я могу ограничить процессор, который это занимает? По какой-то причине мой диспетчер задач говорит, что для выполнения этой простой задачи требуется 50 процессоров, но, вероятно, это займет не более 1 или 2. Хотя менеджер говорит, что он занимает столько CPU, скорость моего компьютера не изменяется все, что странно, учитывая, что это двухлетний ноутбук.
Я не хочу каких-либо пользователей урод об этом, но, зная, как люди в эти дни ....
Во всяком случае, язык vb.net. Может кто-нибудь, пожалуйста, помогите мне?
Спасибо!
EDIT: Для того, чтобы уточнить, что код не внутри самого цикла в то время как, но вызов для подпрограммы, т.е. wait(1000)
Рефакторинг. Серьезно, есть способы лучше построить: waithandles, callbacks и т. Д. –
Дайте пример кода, пожалуйста? – Cyclone
В каком контексте используется этот код? – 2009-09-02 21:11:27