Frage

Ich habe versucht, einen Fehler aufzuspüren ich dachte, war in Bezug auf Threads, aber ich denke, stattdessen gibt es ein Problem mit der Art, wie ich OpenNETCF die Stoppuhr verwenden. Ich verwende OpenNETCF.IoC in meiner Anwendung, aber aus Gründen der Einfachheit zog ich den folgenden Code direkt in eine Ausblick:

public partial class WorkoutView : SmartPart
{
 ...
 private Stopwatch stopwatch; 
 public WorkoutView()
 {  ...
    stopwatch = new Stopwatch();
    stopwatch.Reset();
    stopwatch.Start(); 

    WorkoutDisplayTimer = new Timer();
    WorkoutDisplayTimer.Interval = 500;
    WorkoutDisplayTimer.Tick += new EventHandler(WorkoutDisplayTimer_Tick);
    WorkoutDisplayTimer.Enabled = true;
 }
 void WorkoutDisplayTimer_Tick(object sender, EventArgs e)
 { ...
   stopwatch.Stop();
   lbl.Text = stopwatch.ElapsedTicks.ToString() + "NOT WORKING: " + stopwatch.Elapsed.ToString();
   stopwatch.Start();
  }
  ...
}

Lange Rede kurzer Sinn, mit Blick auf Stoppuhr im Debugger, die einzigen Werte, die immer aktualisiert werden sind ElapsedTicks, mElapsed, mStartPerfCount. Alles andere ist immer Null. Ist das erwartete Verhalten? Benötige ich eine zusätzliche Methode aufrufen, um die Stoppuhr berechnen die verstrichene Struktur zu haben? (Hinweis: stopwatch.ElapsedMilliseconds ist auch null)

War es hilfreich?

Lösung

Ja, es scheint ein Fehler zu sein, und zwar in Stopwatch.cs, Linie 136.

Es lautet derzeit:

smFreqInTicks = (MILLIS_IN_TICKS * 1000) / freq;

Es sollte lauten:

smFreqInTicks = (MILLIS_IN_TICKS * 1000d) / freq;

Im Moment smFreqInTicks endet immer gleich Null ist, die die Werte tötet Sie suchen auf.

Andere Tipps

Warum verwenden Sie die Version nicht im Compact Framework selbst? Es ist in dort ab Version 3.5 ab ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top