voglio un orologio in tempo reale con precisione di microsecondi come posso fare?come ottenere un orologio in tempo reale in C#?
c'è un orologio in tempo reale diverso dal cronometro;
voglio un orologio in tempo reale con precisione di microsecondi come posso fare?come ottenere un orologio in tempo reale in C#?
c'è un orologio in tempo reale diverso dal cronometro;
Si desidera System.Diagnostics.Stopwatch, che può misurare con precisione gli intervalli di tempo al microsecondo (a seconda delle limitazioni hardware).
+1: non sapeva il cronometro . –
Il timer più preciso disponibile in .NET è StopWatch.
controllo questo http://www.c-sharpcorner.com/UploadFile/kapilsoni88/Digital_Click08142008142713PM/Digital_Click.aspx e controllare anche questo http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx
Per un misure ad alta risoluzione è possibile utilizzare la funzione 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;
}
}
Questo è equivalente alla funzionalità in System.Diagnostics.Stopwatch. –
Chris ha ragione. Il cronometro utilizza il kernel32 'QueryPerformanceCounter' sotto le copertine, quindi non vi è alcun motivo per utilizzare questo codice (quando si utilizza .NET 2.0 o versioni successive). Questo codice è ancora utile per quelle povere anime che lavorano ancora con .NET 1.1. – Steven
System.Diagnostics.Stopwatch
utilizza le API di Windows e QueryPerformanceCounter
QueryPerformanceFrequency
. La risoluzione non è standard tra le macchine, ma generalmente è dell'ordine dei microsecondi (vedi this KB article per maggiori informazioni).
In Vista/Win7 c'è anche QueryProcessCycleTime
e QueryThreadCycleTime
che ti darà il numero di cicli trascorsi per il tuo processo/thread. Ciò è utile se si desidera conoscere solo il tempo attivo per il processo (ad esempio, quando non si è passati fuori).
Se si desidera un buon tempo di misurazione, penso che csharp come linguaggio di alto livello potrebbe non essere una buona idea. puoi assemblare un semplice programma che tocca su RTC e quindi legalo al tuo programma tramite una libreria. Questo è letteralmente il miglior scenario possibile che tu possa ottenere senza alcuna sporgenza di Oggetto, ma richiede un po 'di conoscenza di livello basso da mettere insieme.
Se non si dispone di accesso a Internet e si desidera in tempo reale la licenza di prova a tempo del software, è possibile utilizzare il dongle USB con orologio in tempo reale.
Il calcolo del tempo è guidato da un orologio interno alimentato a batteria. È possibile accedere all'ora dal dongle USB utilizzando le funzioni API associate a questi tipi di dongle.
EX- http://www.senselock-europe.com/en/elite-el-rtc-dongle.html
Perché "diverso dal cronometro"? Non è come chiedere "Voglio memorizzare una stringa: esiste un tipo di stringa diverso dalla stringa?" –
possibile duplicato di [Può essere usato Cronometro nel codice di produzione?] (Http://stackoverflow.com/questions/2805362/can-stopwatch-be-used-in-production-code) – BFree