سؤال

لقد كنت أحاول تعقب خطأ اعتقدت أنه يتعلق بالخيط ، لكنني أعتقد بدلاً من ذلك أن هناك مشكلة في الطريقة التي أستخدم بها ساعة توقيت OpenNETCF. انا استخدم OpenNetcf.ioc في طلبي ، ولكن من أجل البساطة ، قمت بنقل الكود التالي مباشرة إلى عرض:

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

قصة قصيرة طويلة ، بالنظر إلى ساعة توقيت في The Debugger ، فإن القيم الوحيدة التي يتم تحديثها على الإطلاق هي ElapsedTicks و Melapsed و MstartPerfCount. كل شيء آخر دائما صفر. هل هذا السلوك المتوقع؟ هل أحتاج إلى استدعاء طريقة إضافية للحصول على ساعة توقيت حساب الهيكل المنقضي؟ (ملاحظة: stalpwatch.elapsedMilliseconds هو أيضا صفر)

هل كانت مفيدة؟

المحلول

نعم ، يبدو أنه خطأ ، وتحديداً في ساعة توقيت ، السطر 136.

تقرأ حاليا:

smFreqInTicks = (MILLIS_IN_TICKS * 1000) / freq;

يجب أن تقرأ:

smFreqInTicks = (MILLIS_IN_TICKS * 1000d) / freq;

في الوقت الحالي ، ينتهي smfreqinticks بأنها دائمًا صفر ، مما يقتل القيم التي تنظر إليها.

نصائح أخرى

لماذا لا تستخدم الإصدار في الإطار المدمج نفسه؟ انها في هناك من الإصدار 3.5 فصاعدا ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top