Я хочу часы реального времени с точностью до микросекунд, как я могу это сделать?Как получить часы реального времени в C#?
есть ли часы реального времени, кроме секундомера;
Я хочу часы реального времени с точностью до микросекунд, как я могу это сделать?Как получить часы реального времени в C#?
есть ли часы реального времени, кроме секундомера;
Вы хотите System.Diagnostics.Stopwatch, который может точно измерять интервалы времени до микросекунды (в зависимости от аппаратных ограничений).
+1: не знал о секундомере , –
Самый точный таймер, доступный в .NET, - StopWatch.
В течение измерения высокого разрешения можно использовать функцию 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;
}
}
Это эквивалентно функциональности в System.Diagnostics.Stopwatch. –
Крис прав. Секундомер использует kernel32 'QueryPerformanceCounter' под обложками, поэтому нет смысла использовать этот код (при использовании .NET 2.0 или выше). Этот код по-прежнему полезен для тех бедных душ, которые все еще работают с .NET 1.1. – Steven
System.Diagnostics.Stopwatch
использует QueryPerformanceCounter
и QueryPerformanceFrequency
для Windows API. Разрешение не является стандартным для машин, но обычно оно составляет порядка микросекунд (см. this KB article для получения дополнительной информации).
В Vista/Win7 есть также QueryProcessCycleTime
и QueryThreadCycleTime
, которые предоставят вам количество прошедших циклов для вашего процесса/потока. Это полезно, если вы хотите знать только активное время для процесса (например, время, когда вы не были отключены).
Если вы хотите хорошо провести время, я думаю, что csharp как язык высокого уровня может быть не очень хорошей идеей. вы можете собрать простую программу, которая вступает в RTC, а затем привязывает ее к вашей программе через библиотеку. Это буквально лучший возможный сценарий, который вы можете получить без вскрытия объекта, но для этого требуется некоторый уровень знаний о том, как собрать вместе.
Если у вас нет доступа в Интернет, и вы хотите получить реальное время для пробной лицензии на программное обеспечение, тогда вы можете использовать USB-ключ с часами реального времени.
Расчет его времени ведется внутренними часами, которые управляются батареей. Вы можете получить доступ к времени с USB-ключа, используя функции API, которые поставляются вместе с этими типами ключей.
EX- http://www.senselock-europe.com/en/elite-el-rtc-dongle.html
Почему «кроме секундомера»? Разве это не похоже на вопрос: «Я хочу сохранить строку. Есть ли тип строки, отличный от строки?» –
Возможный дубликат [Может ли секундомер использоваться в производственном коде?] (Http://stackoverflow.com/questions/2805362/can-stopwatch-be-used-in-production-code) – BFree