Domanda

Ho cercato di rintracciare un bug ho pensato è stata filo-correlati, ma penso che invece ci sia un problema con il modo in cui sto usando Cronometro di OpenNETCF. Sto usando OpenNETCF.IoC nella mia richiesta, ma per semplicità ho spostato il seguente codice direttamente in un vista:

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

Per farla breve, guardando il cronometro nel debugger, gli unici valori che mai ottenere aggiornati sono ElapsedTicks, mElapsed, mStartPerfCount. Tutto il resto è sempre zero. È questo comportamento previsto? Devo chiamare un ulteriore metodo per avere il cronometro calcolare la struct trascorso? (Nota: stopwatch.ElapsedMilliseconds è anche zero)

È stato utile?

Soluzione

Sì, sembra essere un bug, in particolare in Stopwatch.cs, linea 136.

E 'attualmente recita:

smFreqInTicks = (MILLIS_IN_TICKS * 1000) / freq;

Dovrebbe essere visualizzato:

smFreqInTicks = (MILLIS_IN_TICKS * 1000d) / freq;

In questo momento smFreqInTicks finisce per essere sempre uguale a zero, che uccide i valori che stai guardando.

Altri suggerimenti

Perché non usare la versione del Compact Framework per sé? E 'in ci dalla versione 3.5 in poi ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top