2

J'ÉCOULÉ ai essayé de traquer un bug que je pensais était lié à fil, mais je pense plutôt qu'il ya un problème avec la façon dont je me sers de Chronomètre OpenNETCF. J'utilise OpenNETCF.IoC dans ma demande, mais pour des raisons de simplicité je me suis déplacé le code suivant directement dans une vue:OpenNETCF.Stopwatch -> que les tiques changer, non

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(); 
    } 
    ... 
} 

Longue histoire courte, regardant le chronomètre dans le débogueur, les seules valeurs que jamais soient mis à jour sont ElapsedTicks, mElapsed, mStartPerfCount. Tout le reste est toujours zéro. Est-ce que ce comportement est attendu? Ai-je besoin d'appeler une méthode supplémentaire pour que le chronomètre calcule la structure Elapsed? (Note: stopwatch.ElapsedMilliseconds est zéro)

Répondre

2

Eh oui, il semble y avoir un bug, plus précisément dans Stopwatch.cs, ligne 136.

Il lit actuellement:

smFreqInTicks = (MILLIS_IN_TICKS * 1000)/freq; 

il faut lire :

smFreqInTicks = (MILLIS_IN_TICKS * 1000d)/freq; 

En ce moment smFreqInTicks finit toujours par être zéro, ce qui tue les valeurs que vous regardez.

+0

Merci pour la réponse! Y a-t-il une chance que vous fassiez une version corrigée d'un bug bientôt? J'utilise actuellement le SDF communautaire, donc malheureusement, je n'ai pas accès au code source pour créer mon propre patch. – pithyless

1

Pourquoi ne pas utiliser la version dans le Compact Framework lui-même? Il est à partir de la version 3.5 there partir ...

+0

Merci d'avoir signalé cela. Je n'ai pas encore eu l'occasion de tester la version de CF.Net, mais s'il n'y a pas de problème, je vais basculer. – pithyless