Подтвердить что ты не робот

Как получить часы реального времени в С#?

Мне нужны часы реального времени с точностью до микросекунд, как я могу это сделать?

есть ли часы реального времени, кроме секундомера;

4b9b3361

Ответ 1

Вы хотите System.Diagnostics.Stopwatch, который может точно измерять временные интервалы до микросекунды (в зависимости от аппаратных ограничений).

Ответ 2

System.Diagnostics.Stopwatch использует QueryPerformanceCounter и QueryPerformanceFrequency API Windows. Разрешение не является стандартным для машин, но обычно оно порядка микросекунд (см. эту статью в KB для получения дополнительной информации).

В Vista/Win7 есть также QueryProcessCycleTime и QueryThreadCycleTime, который даст вам количество прошедших циклов для вашего процесса/потока. Это полезно, если вы хотите знать только активное время для процесса (например, время, когда вы не были отключены).

Ответ 3

Самый точный таймер, доступный в .NET, StopWatch.

Ответ 4

Для измерений с высоким разрешением вы можете использовать функцию QueryPerformanceCounter:

class Program
{
    [DllImport("kernel32.dll")]
    private static extern void QueryPerformanceCounter(ref long ticks);

    static void Main()
    {
        long startTicks = 0L;
        QueryPerformanceCounter(ref startTicks);

        // some task

        long endTicks = 0L;
        QueryPerformanceCounter(ref endTicks);
        long res = endTicks - startTicks;
    }
}

Ответ 6

Если вы хотите хорошо провести время, я думаю, что csharp как язык высокого уровня может не быть хорошей идеей. вы можете собрать простую программу, которая вступает в RTC, а затем привязывает ее к вашей программе через библиотеку. Это буквально лучший возможный сценарий, который вы можете получить без вскрытия объекта, но для этого требуется некоторый низкий уровень знаний.

Ответ 7

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

Его расчет времени ведется внутренними часами, которые управляются батареей. Вы можете получить доступ к времени с USB-ключа, используя функции API, которые поставляются вместе с этими типами ключей.

EX- http://www.senselock-europe.com/en/elite-el-rtc-dongle.html