Millisekunden in DateTime.Jetzt auf .NET Compact Framework immer null?

ich will eine Zeitstempel für Protokolle auf einem Windows Mobile-Projekt. Die Genauigkeit muss im Bereich von hundert Millisekunden mindestens.

Aber mein Aufruf DateTime.Now gibt eine DateTime Objekt mit der Millisecond - Eigenschaft auf null gesetzt. Auch die Ticks Eigenschaft ist gerundet entsprechend.

Wie man besser Zeit-Genauigkeit?
Erinnern, dass mein code läuft auf dem Compact Framework, version 3.5. Ich benutze ein HTC touch Pro 2-Gerät.

Auf der Grundlage der Antwort von MusiGenesis ich habe die folgende Klasse, die dieses problem gelöst:

///<summary>
///A more precisely implementation of some DateTime properties on mobile devices.
///</summary>
///<devdoc>Tested on a HTC Touch Pro2.</devdoc>
public static class DateTimePrecisely
{
    ///<summary>
    ///Remembers the start time when this model was created.
    ///</summary>
    private static DateTime _start = DateTime.Now;
    ///<summary>
    ///Remembers the system uptime ticks when this model was created. This
    ///serves as a more precise time provider as DateTime.Now can do.
    ///</summary>
    private static int _startTick = Environment.TickCount;

    ///<summary>
    ///Gets a DateTime object that is set exactly to the current date and time on this computer, expressed as the local time.
    ///</summary>
    ///<returns></returns>
    public static DateTime Now
    {
        get
        {
            return _start.AddMilliseconds(Environment.TickCount - _startTick);
        }
    }
}

InformationsquelleAutor der Frage Marcel | 2010-04-09

Schreibe einen Kommentar