Обнаружение изменения времени Windows c

#c -cli #ctime

#c -cli #ctime

Вопрос:

Я использую

 CTime t = CTime::GetCurrentTime();
 

чтобы получить текущее время из Winodws, но когда часы меняются на следующий день, а приложение все еще открыто, время не меняется. Как я могу заставить ‘t’ автоматически обновляться при изменении времени ?.

Что я пытался, так это использовать событие изменения времени,

     public:
event EventHandler^ TimeChanged {
    static void add(EventHandler^ value);
    static void remove(EventHandler^ value);
}
 

но как применить это к CTime t ?. Заранее спасибо

Комментарии:

1. Конечно, время, которое вы извлекаете, не изменится. Когда вы извлекаете текущее время, вы получаете текущее время во время выборки. Он не будет обновляться автоматически, вам придется извлекать его снова. Может быть, вам просто нужен простой таймер, который срабатывает раз в минуту и (повторно) извлекает текущее время?

2. И на стороне примечания: согласно документации TimeChanged , событие возникает «когда пользователь изменяет время на системных часах».

3. Спасибо за ответ. Есть ли более простой способ, например, использовать difftime для вычисления разницы между двумя временами?. например, сравните время сейчас и время до 1 минуты. но как сделать это с точки зрения синтаксиса. Я новичок в c .

4. Вы находитесь в C / CLI, поэтому вы можете использовать System::DateTime тип. Например, возьмите DateTime::Now в начале некоторую медленную обработку, возьмите другую DateTime::Now в конце, вычтите их, и вы получите System::TimeSpan