تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة عدم دقة توقيت التايمر
#1
Sad 
السلام عليكم ورحمة الله وبركاته

عندي مشكله

عندما وضعت التايمر على 1000 يعني يعمل كل ثانيه
اجد بعد عدة ساعات عدم دقة الثوان
فهل هناك طريقه ادق من التايمر في العمل كل ثانية تماما ؟

وشكرا مقدما
الرد }}}
تم الشكر بواسطة:
#2
إقتباس :اجد بعد عدة ساعات عدم دقة الثوان

فهل هناك طريقه ادق من التايمر في العمل كل ثانية تماما ؟

ممكن مزيد من توضيح المشكلة لو سمحت يعني ما هو الكود الموجود داخل التيمر وما هو الاختلاف الحاصل بالضبط 
لعل تجد المساعدة ان شاء الله
الرد }}}
تم الشكر بواسطة: أسعد , ابراهيم ايبو , ابراهيم ايبو
#3
(17-04-21, 12:29 AM)أبو عبدالله الحلواني كتب : ممكن مزيد من توضيح المشكلة لو سمحت يعني ما هو الكود الموجود داخل التيمر وما هو الاختلاف الحاصل بالضبط 
لعل تجد المساعدة ان شاء الله

جزاك الله خير على التفاعل

هذا مثال
ضع اثنان لايبل وهذا الكود
PHP كود :
Public Class Form1

    Dim sw 
As New Stopwatch
    Dim n 
As Integer

    
Private Sub Form1_Load(sender As ObjectAs EventArgsHandles MyBase.Load
        Timer1
.Interval 1000
        Timer1
.Start()
        
sw.Start()
    
End Sub

    
Private Sub Timer1_Tick(sender As ObjectAs EventArgsHandles Timer1.Tick
        n 
+= 1
        Label1
.Text n
        Label2
.Text sw.Elapsed.TotalSeconds
    End Sub

End 
Class 
ستلاحظ بعد وقت من الزمن اختلاف الارقام الظاهره في كل لايبل
بالرغم ان التايمر على 1000 يعني ثانية
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#4
إقتباس :ستلاحظ بعد وقت من الزمن اختلاف الارقام الظاهره في كل لايبل

بالرغم ان التايمر على 1000 يعني ثانية


المشكلة ليست في التيمر ولكن في الاستوبوتش فانه يظهر القيمة بالملي ثانية 
اكتب الكود بهذا الشكل وستري الفرق ان شاء الله

PHP كود :
Label2.Text CInt(sw.Elapsed.TotalSeconds
وهذا المرفق بعد التعديل


الملفات المرفقة
.rar   TestTimer.rar (الحجم : 153.56 ك ب / التحميلات : 12)
الرد }}}
#5
(17-04-21, 06:33 PM)أبو عبدالله الحلواني كتب : المشكلة ليست في التيمر ولكن في الاستوبوتش فانه يظهر القيمة بالملي ثانية 
اكتب الكود بهذا الشكل وستري الفرق ان شاء الله

PHP كود :
Label2.Text CInt(sw.Elapsed.TotalSeconds
وهذا المرفق بعد التعديل

اشكرك جدا على مشاركتك

انا عامل في الكود الذي عندي CInt ولكن أزلتها في المثال السابق ليتضح سبب عدم تساوي الثوان بعد مدة من خلال مراقبة الملي ثانية

المقصود بعد مدة من الوقت مع تجاهل الملي ثانية سترى ان هناك ثانية تم تجاوزها ثم بعد مدة ثانية يتم تجاوزها وهكذا

عندما يتم تشغيل الكود اصبحت النتيجة بعد 36 ثانية
Tiimer value: 37
StopWatch Value: 38
وبعد مده اصبحت النتيجه
Tiimer value: 197
StopWatch Value: 200

قم بتشغيل المرفق الذي ارفقتموه وانتظر بعد حوالي الدقيقة الى دقيقتين سترى ان الآرقام قد اختلفت ولم تعد متساوية

هذا ما قصدته

ولكم جزيل الشكر
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#6
إقتباس :قم بتشغيل المرفق الذي ارفقتموه وانتظر بعد حوالي الدقيقة الى دقيقتين سترى ان الآرقام قد اختلفت ولم تعد متساوية

هذا ما قصدته




كلام حضرتك صحيح!

ولكن طالما ان المشكلة لم تعد بالتيمر  وصار التيمر بريء من تهمة عدم الانضباط Big Grin

فلماذا لا تصرح بفكرتك لربما يكون الوصول اليها بطريقة اخري أقرب لما تريد 
ودع عنك عبأ مطابقة المختلفين  Rolleyes

أو حاول زيادة سرعة التيمر أيضا ليعمل بالملي ثانية وانتهي الأمر
الرد }}}
تم الشكر بواسطة: أسعد , ابراهيم ايبو
#7
(19-04-21, 08:01 PM)أبو عبدالله الحلواني كتب : كلام حضرتك صحيح!

ولكن طالما ان المشكلة لم تعد بالتيمر  وصار التيمر بريء من تهمة عدم الانضباط Big Grin

فلماذا لا تصرح بفكرتك لربما يكون الوصول اليها بطريقة اخري أقرب لما تريد 
ودع عنك عبأ مطابقة المختلفين  Rolleyes

أو حاول زيادة سرعة التيمر أيضا ليعمل بالملي ثانية وانتهي الأمر

اشكرك اخي ابو عبد الله

الفكرة هي إجراء قدح Trigger (ان صح التعبير) لحدث Event كل ثانية تماما وعدم تفويت أي ثانيه

قد يكون هناك أمر بديل عن استخدام التايمر متربط بساعة اللوحة الجهاز أو ساعة نظام التشغيل ولكن لا أعرف الطريقه

وشكرا لكم
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#8
السلام عليكم

اخي اعتقد ان اجراء حدث مهما كان صغير يستهلك جزء من الوقت واعتقد الفرق عندك في مرور الوقت هو اجراء الحدث حتى لو استهلك جزء من الف جزء من الثانية

والله أعلم

تقبل مروري
الرد }}}
تم الشكر بواسطة: أسعد , ابراهيم ايبو
#9
(20-04-21, 05:37 AM)messry كتب : السلام عليكم

اخي اعتقد ان اجراء حدث مهما كان صغير يستهلك جزء من الوقت واعتقد الفرق عندك في مرور الوقت هو اجراء الحدث حتى لو استهلك جزء من الف جزء من الثانية

والله أعلم

تقبل مروري

وعليكم السلام اخي messry

اشكرك اخي
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#10
طيب هل هناك حل لهذه المشكلة ؟
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم