Как синхронизировать системные часы с глобальной датой/временем?

Мои системные часы случайно сходят с ума в любой момент и меняют дату/время системных часов на случайные. Это не литиевая батарея и не вирус, потому что я проверял. Также это не что-то от самого Windows.System.Time.

Я хочу создать процесс, который через определенные промежутки времени будет проверять, соответствует ли дата/время системных часов глобальной дате/времени, а если нет, то он будет синхронизироваться.

Мне нужно, чтобы это работало в фоновом режиме. Я даже не уверен, что процесс Windows - правильный способ сделать это. Я также открыт для любых других решений.


person egy    schedule 02.02.2014    source источник
comment
Для этого можно создать службу Windows msdn. microsoft.com/en-us/library/zt39148a(v=vs.110).aspx   -  person DeanOC    schedule 03.02.2014
comment
Приложение Windows GUI — это тоже процесс. Когда вы запускаете Блокнот, вы запускаете процесс. Что именно ты имеешь ввиду. Вам нужно расшифровать это.   -  person David Heffernan    schedule 03.02.2014
comment
Извините, Дэвид, я только что отредактировал вопрос. Спасибо за быстрый ответ. Что-нибудь еще я должен знать?   -  person egy    schedule 03.02.2014
comment
Я думаю, вы хотите написать службу Windows. Однако не пишите службу для синхронизации времени. Система уже может это делать, и это на удивление трудно сделать хорошо. Скорее всего, ваш код ошибется.   -  person David Heffernan    schedule 03.02.2014
comment
Итак, вы говорите, что лучшим вариантом является служба Windows, и в то же время не писать службу только для синхронизации времени. Если вы правы, то что мне писать?   -  person egy    schedule 03.02.2014
comment
Ну мне кажется мало смысла писать сервис для выполнения функции, которую ОС и так делает лучше, чем вы можете   -  person David Heffernan    schedule 03.02.2014
comment
Причина, по которой я это делаю, заключается в том, что системные часы сходят с ума случайным образом в любой момент (т.е. меняют дату и время на случайные). И нет, это не литиевая батарея и не вирус, потому что я проверил их. Также это не что-то из самого Windows.Time. Это странно, и мне нужно найти решение. Спасибо за ваш предыдущий ответ, Дэвид.   -  person egy    schedule 04.02.2014
comment
Вам просто нужно обновить свой вопрос своими разъяснениями, а не комментариями. Вы должны удалить комментарий. Я обновлю ваш вопрос.   -  person Code Maverick    schedule 06.02.2014
comment
Я думаю, гораздо важнее выяснить, почему ваши системные часы «сходят с ума».   -  person Dour High Arch    schedule 06.02.2014
comment
Ваш вопрос был обновлен, и теперь он должен быть гораздо более ясным в отношении того, что вы хотите. Однако этого все еще может быть недостаточно, потому что на данный момент вы просто просите решения. Вам нужно попытаться сделать это самостоятельно, а затем отредактировать свой вопрос, добавив код, который вы пробовали, если он все еще не работает.   -  person Code Maverick    schedule 06.02.2014


Ответы (1)


Создайте новый пустой проект С#. Нажмите на проект и перейдите в «Свойства», измените тип вывода на «Приложение Windows» (это удалит консоль).

Создайте новый пример класса: Example.cs

Напишите статическую точку входа, например:

public class Example
{
    static void Main(string[] args)
    {

    }
}

Вставьте свой код в основную процедуру.

Это создаст процесс, который не содержит консоли/окна/службы.

Я предполагаю, что это то, что вы хотите.

person Xela    schedule 03.02.2014
comment
Да, это так просто, как я хочу. Спасибо. И кстати, вы знаете, как я могу получить текущее время с сервера? Вам не нужно много печатать. Просто дайте мне статьи или ссылки для чтения. - person egy; 04.02.2014
comment
Взгляните на это: stackoverflow.com/questions/1008111/ - person Xela; 04.02.2014