Форум программистов, компьютерный форум CyberForum.ru

C++ Builder

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
TitanX
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 6
#1

Как разгрузить процессор при бесконечном цикле - C++ Builder

17.08.2010, 19:16. Просмотров 2381. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
 while(1) {}; 
}
 Комментарий модератора 
Используйте теги кода
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2010, 19:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как разгрузить процессор при бесконечном цикле (C++ Builder):

Как значительно разгрузить процессор с Windows 7? - Windows 7
Собственно стоит выбор - разгон или облегчение ему работы. С первым вариантом связываться не хочу, ибо ресурс и возможность сгорания.

Почему зависает программа при бесконечном цикле Do - Loop - Visual Basic .NET
Вот собственно программа которую я делал. Но почему-то зависает при старте действий. Public Class Form1 Private Sub...

Как запускать программы в бесконечном цикле? - C#
Друзья, с циклами не разу не работал. Так как мне все время кажется, что это очень сложно. Задача: Открывать бесконечно что либо....

Пропадают некоторые числа при увеличении числа в бесконечном цикле - C++
Товарищи, приветствую! У меня тут загвоздка одна. Выводятся на экран числа начиная с 704 и до 999. А куда деваются числа 1-703? ...

Перезагрузка в бесконечном цикле. - Windows XP
Доброго времени суток. Знакомый дал компьютер.В общем проблема такая. При загрузке компьютера он перезагружается после выбора...

Выполнять функцию в бесконечном цикле - C#
Здравствуйте! Мне нужно чтобы каждую секунду выполнялась одна функция, которая возвращает булевское значение Подскажите, как сделать?...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Monte-Cristo
2788 / 1374 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
17.08.2010, 19:45 #2
Процессор, или чтоб gui отвис? Самый лучший способ - вынести бесконечный цикл в поток.
Можно просто выделять процессорное время используя Sleep(0). А вообще, самое рациональное, избегать бесконечных циклов вообще.
Sasha
4865 / 2339 / 235
Регистрация: 05.06.2008
Сообщений: 7,354
Записей в блоге: 3
17.08.2010, 20:18 #3
Цитата Сообщение от TitanX Посмотреть сообщение
C++
1
2
3
4
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
 while(1) {}; 
}
Используйте теги кода
C++
1
2
3
4
5
for (;;)
 
{
 
}
MikeSoft
Эксперт С++
3793 / 1775 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
17.08.2010, 20:44 #4
Sasha, немножко не понял вашего совета. Поясните, какую вы видите разницу между while(1) и for(; ?
Оптимизатором будет предпринята операция по исключения проверок (ещё на этапе компиляции вы получите предупреждение "Unreachable code").

TitanX, используйте Sleep(1); или большее значение.
Если вам нужно обработать очередь Windows-сообщений, то лучше Application->ProcessMessages();

Опять же, Monte-Cristo прав, порекомендовав вам использовать потоки для обработки подобных циклов.

Темы потоков поднимались неоднократно... Например, можно посмотреть вот здесь: Ошибка при вызове CreateThread
TitanX
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 6
17.08.2010, 21:30  [ТС] #5
Спасибо. sleep(1) помогло.
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
17.08.2010, 21:35 #6
C++
1
Application->ProcessMessages
... или я не в тему?
ProstoMad
48 / 38 / 2
Регистрация: 30.06.2010
Сообщений: 1,169
19.08.2010, 13:13 #7
Как цикл в поток вывести?
MikeSoft
Эксперт С++
3793 / 1775 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
19.08.2010, 13:20 #8
ProstoMad, чуть выше я давал ссылку... через неё можно выйти на нужную тему.
Посмотрите пост с примером создания потока: CreateThread
[XandeR]
29 / 29 / 1
Регистрация: 18.03.2009
Сообщений: 381
Записей в блоге: 2
21.08.2010, 10:07 #9
я избегал попадания программы в бесконечный цикл путем установки лимита итераций цикла, например
C++
1
2
3
4
5
6
7
while(Replace()){
    erCounter++;
    if (erCounter>200) {
        Aux->Error("Возникло прерывание из-за вероятности входа в бесконечный цикл");
        break;
    }
}
если конечно Вам требуется прерывание
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2010, 10:07
Привет! Вот еще темы с ответами:

Запрашивать слова в бесконечном цикле - C++
Запрашивать у польщователя слова в бесконечном цикле. Выводить true, если словосодержит только цифры 0-9 и символы A-F или a-f, и false,...

Получить событие в бесконечном цикле - JavaScript
Добрый день. Возможно ли сделать так, чтобы события продолжали приходить, когда запущен бесконечный цикл, что останавливает весь...

Запрашивать слова в бесконечном цикле - C (СИ)
Запрашивать слова у пользователя в бесконечном цикле. Выводить true,если слово являеться полиндромом, и false,если не являеться. Выйти из...

Загрузка процессора в бесконечном цикле - C#
Что будет есть в Visual Studio в консольном приложении на C# написать бесконечный цикл while(true) {} и запустить на выполнение ? На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.08.2010, 10:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru