Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
C-R Гость
|
Добавлено: Пн Апр 26 2004 17:45 Заголовок сообщения: C++ таймер |
|
|
Помогите начинающему, плз! Подскажите, как сделать таймер под Win32 Console Application ![Embarassed](images/smiles/icon_redface.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Andy_user
Зарегистрирован: 03.12.2003 Сообщения: 382 Откуда: Санкт-Петербург
|
Добавлено: Вт Апр 27 2004 10:38 Заголовок сообщения: |
|
|
Создайте еще один поток, функция которого должна периодически засыпать на 1 мс, просыпаться, анализировать некий список, проверять истечение времени для каждого элемента списка и выполнять действие (например, изменять соответствующую переменную в списке), если интервал времени для этого элемента истек.
Этот список (список взведенных таймеров) формирует основной поток.
Обратите внимание на синхронизацию доступа к этому списку со стороны двух асинхронных потоков. Это можно организовать, например, с помощью критических секций. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
C-R Гость
|
Добавлено: Вт Апр 27 2004 12:35 Заголовок сообщения: |
|
|
А попроще объяснить сможешь? Все, что мне нужно сделать - небольшую задержку (1-3с) перед запуском следующей функции. Я бы сделал циклом, но это совсем уж по-ламерски, да и задержка будет разная на разных машинах |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Andy_user
Зарегистрирован: 03.12.2003 Сообщения: 382 Откуда: Санкт-Петербург
|
Добавлено: Вт Апр 27 2004 13:04 Заголовок сообщения: |
|
|
Тогда, уважаемый, выражайтесь яснее...
Таймер и задержка - почувствуйте разницу.
Функция
Sleep(1000) ; // Задержка 1 секунда
Sleep(3000) ; // Задержка 3 секунды |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
droopy Гость
|
Добавлено: Вт Апр 27 2004 13:13 Заголовок сообщения: |
|
|
тогда тебе таймер вообще не нужен. используй time.h
Код: |
void delay( time_t t, double d )
{
time_t tt;
do
{
time( &tt );
} while( difftime( tt, t ) < d );
}
int main()
{
time_t t;
time( &t );
delay( t, 3 );
struct tm *tt;
tt = localtime( &t );
cout << tt->tm_hour;
}
|
|
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
droopy Гость
|
Добавлено: Вт Апр 27 2004 13:19 Заголовок сообщения: |
|
|
Мой вариант хоть и громоздкий. Зато кроссплатформенный.
Используется не более чем стандарт с. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
C-R Гость
|
Добавлено: Вт Апр 27 2004 13:35 Заголовок сообщения: |
|
|
Всем спасибо, уважаемые! Благодаря вам курсовая наконец-то будет закончена ![Wink](images/smiles/icon_wink.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|