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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 135, средняя оценка - 4.73
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
#1

5 СПОСОБОВ задержки времени: Что скажете? - C++

17.12.2009, 20:38. Просмотров 19377. Ответов 21

В Linux работают 100%, в Windows не проверял, но тоже должны работать.

1. используя nanosleep:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
 
 
 
using namespace std;
 
 
 
int msleep(unsigned long milisec)  
 
{  
 
    struct timespec req={0};  
 
    time_t sec=(int)(milisec/1000);  
 
    milisec=milisec-(sec*1000);  
 
    req.tv_sec=sec;  
 
    req.tv_nsec=milisec*1000000L;  
 
    while(nanosleep(&req,&req)==-1)  
 
        continue;  
 
    return 1;  
 
}  
 
 
 
int main()
 
{
 
    cout << "Testing nanosleep: waiting 5 secs\n";
 
    msleep(5000);
 
    cout << "That is it";
 
}
2. используя usleep:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
 
#include <time.h> 
 
 
 
using namespace std;
 
 
 
void Sleep(float s)
 
{
 
    int sec = int(s*1000000);
 
    usleep(sec);
 
}
 
 
 
int main ()
 
{
 
    cout << "Waiting 5 secs\n";
 
    Sleep(5);
 
    printf ("FIRE!!!\n");
 
  return 0;
 
}
3. используя CLOCKS_PER_SEC:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
 
#include <time.h> 
 
 
 
void wait ( int seconds )
 
{
 
  clock_t endwait;
 
  endwait = clock () + seconds * CLOCKS_PER_SEC ;
 
  while (clock() < endwait) {}
 
}
 
 
 
int main ()
 
{
 
  int n;
 
  printf ("Starting countdown...\n");
 
  for (n=10; n>0; n--)
 
  {
 
    printf ("%d\n",n);
 
    wait (1);
 
  }
 
  printf ("FIRE!!!\n");
 
  return 0;
 
}
4. используя sleep:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
#include <time.h>
 
 
 
using namespace std;
 
 
 
int main()
 
{
 
    cout << "SomeAction\n";
 
    cout << endl;
 
    sleep(1);               // seconds
 
    cout << "NextAction\n";
 
    return 0;
 
}
5. используя sleep:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
#include <time.h>
 
 
 
using namespace std;
 
 
 
int main()
 
{
 
    cout << "SomeAction\n";
 
    cout.flush();
 
    sleep(1);               // seconds
 
    cout << "NextAction\n";
 
    return 0;
 
}
Собственно вопрос: как вы считаете, все ли они акуратны и какой из них самый предпочтительный (в плане точности)?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2009, 20:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 5 СПОСОБОВ задержки времени: Что скажете? (C++):

Задержки клавиатуры Windows - C++
Доброго вечера! Никак не могу разобраться, как можно узнать сколько секунд составляют стандартные задержки клавиатуры в винде. Буду...

Библиотека BASS (un4seen): возможна ли обработка звука в реальном времени без существенной задержки? - C++ Builder
Здравствуйте. Если использовать приличный ноутбук с внешней (тоже приличной) звуковой картой, то можно ли обработать в реальном...

Задержки в таймере - C++ Builder
например, таймер у меня опрашивает каждую секунду выполнение одного условия. Можно сделать так чтобы при выполнении этого условия сделать...

Sleep() имеет плохую точность задержки времени, есть альтернативы? - C++ WinAPI
Столкнулся с проблемой в коде с++ установка Sleep(1);//Задержка кода на 1 миллисек. Однако это далеко не так. За место 1 миллисекунды...

Функция задержки времени - C++
Здравствуйте! Пишу программу на Visual Studio C++, и возник вопрос. Как сделать допустим вывод информации &quot;Программа завершена!&quot; и затем...

Алгоритм задержки - C++
Добрый вечер. Хочу попробовать динамически выводить текст в консоли. Какой алгоритм создания задержки? Не через функцию Sleep().

21
niXman
Эксперт С++
3138 / 1450 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 20:23 #16
outoftime, вы хоть поняли что написали?
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
18.12.2009, 21:55 #17
да по сути маразм, но мне как-то смутно верится, либо єто злое совпадение, (убунту - это ос декспотовская, типа виндовс от линукса)
0
niXman
Эксперт С++
3138 / 1450 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
18.12.2009, 21:59 #18
Цитата Сообщение от outoftime Посмотреть сообщение
убунту - это ос декспотовская, типа виндовс от линукса
никому этого не говорите
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
18.12.2009, 22:38 #19
не ну я норм написал, понятно ведь все, а в том что это совпадение я уже разобрался..
0
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
14.05.2011, 11:12 #20
Цитата Сообщение от outoftime Посмотреть сообщение
да по сути маразм, но мне как-то смутно верится, либо єто злое совпадение, (убунту - это ос декспотовская, типа виндовс от линукса)

Вы знаете что-то чего не знаем мы? )))))
0
ForEveR
14.05.2011, 14:52
  #21

Не по теме:

niXman, Сейчас это реально ведь. Юнити мать его.

0
Kastaneda
14.05.2011, 18:13     5 СПОСОБОВ задержки времени: Что скажете?
  #22

Не по теме:

ForEveR, посмотри на дату постов) камрад absokolov зачем-то тему поднял, может весна...

1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2011, 18:13
Привет! Вот еще темы с ответами:

функция задержки - C++
Подскажите, как называется функция задержки? например в делфи delay(1000)-подождать секунду, а в с++ ?

Задание времени задержки в нормальных минутах - AnyLogic
Не могу понять, как работает время задержки. Там указывается экспоненциальное распределение и размер (секунды, минуты и т.д.). Подскажите,...

Программа с введением времени задержки с клавиатуры - Assembler
Ребята,такая проблемка,задали курсовую работу по программе на языке ассемблера,на тему &quot;программа задержки,с введением времени задержки с...

Что скажете? - Домашний компьютер
Для начала сборки игрового ПК, а почему для &quot;начала&quot; денег нет пока что )))) Проц http://sidex.ru/view.php?id=168913 Куллер...


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

Или воспользуйтесь поиском по форуму:
22
14.05.2011, 18:13
Ответ Создать тему
Опции темы

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