2012-04-29 13 views
10

Che cos'è la sostituzione WinRT per System.Environment.TickCount?Sostituzione WinRT di System.Environment.TickCount

+0

Per cosa ti serve? Per molti usi 'DateTime.UtcNow' è perfettamente a posto, ma non è equivalente. – CodesInChaos

+1

DateTime.UtcNow non è un sostituto se ti serve il tempo monotonico. UtcNow è un valore arbitrario. – usr

+0

TickCount è un valore arbitrario. DateTime.UtcNow.Tick è monotonico. –

risposta

7

Dovrebbe essere disponibile, perché è isn't a problem. Ma non è, un hangup [TypeForwardedTo] immagino perché GetTickCount() non è sulla lista bianca e .NET non ha mai adottato GetTickCount64. Il fallback standard funziona bene, è possibile utilizzare la funzione nativa di Windows. Ho verificato che un programma che lo utilizza supera il test del Kit di certificazione app di Windows.

[System.Runtime.InteropServices.DllImport("kernel32.dll")] 
    private static extern long GetTickCount64(); 

Si noti che restituisce un lungo, non un int. Puoi semplicemente trasmettere a int per troncare se ciò è importante in C# (ma non vb.net, menzogne ​​sul tipo di ritorno)

+0

Quindi sono confuso. Se sono permessi per le App Metro, allora perché non è presente nelle API C# di default? –

+0

Ho cercato di spiegarlo nella risposta. Non sparare al messaggero, preferisco le risposte che risolvono un problema. –

+0

Sì, mi dispiace. Non volevo arparti con te. Mi chiedo se questo cambierà con la versione finale. Grazie comunque. –

1

Appare System.Environment.TickCount è ora supportato nelle app di Windows 8 di Windows Store.