الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل استطيع الحصول على تاخير زمني اقل من 1 ملي ثانية ؟

بدأه compiler_x في 3 أكتوبر 2009 · 8 رد · 2,006 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الكل يعرف الاداة الشهير الخاصة بالتوقيتات والتاخيرات الزمنية وهي ال Timer ما اعرفة هو ان اقل قيمة تاخذها الخاصية interval التي تقوم بضبط العداد هي 1 اي واحد ملي ثانية فهل استطيع الحصول على وقت اقل من هذا اي هل بالامكان جعل العداد اسرع عن طريق ال timer

وهل هناك دوال يمكن ان تؤدي عمل ال timer وتعطي تاخير زمني اقل من واحد ملي ثانية ؟ على ما اعتقد انه في لغة بيسك القديمة كانت هناك دالة اسمها delay فهل يوجد دالة مشابه ؟؟؟؟

افيدونا جزاكم الله خيرا

اللهم صل على محمد واله خير الانام وارزقنا شفاعتهم اجمعين

#2

أعتقد أن delay في لغة السي

وهو استدعاء المكتبة

 delay.h

ومن ثم تسند القيمة

delay_ms

لعل الأعضاء يفيدونك

من مواضعي

برنامج يتصل بقواعد بيانات MYSQL

طريقة إرسال البيانات من البرنامج إلى الوورد

قاطعوا المنتجات الدنماركية والهولندية لنصرة رسول الله والإسلام

lom024p4owxcwq2.gif

للمراسلة عبر الماسنجر :

#3

شكرا اخي ميمون على تفاعلك مع السؤال ولكني احتاج الى الجواب بلغة الفيجوال بيسك وليس بلغة السي

ولا اعرف عدم وجود جواب شافي هل هو بسبب عدم وجود مثل هذه الدالة ام هناك سبب اخر ؟؟؟؟؟

اللهم صل على محمد واله خير الانام وارزقنا شفاعتهم اجمعين

#4

ما اعرفه / اذكره

الاداه Timer سيئه للغايه ولا تستخدمها لقيم اقل من ~50ms

تستطيع باستخدام ال WinAPI الوصول لل ms

ما اذكره انه لا توجد طريقه دقيقه على ال PC's تصل لاقل من ms والسبب يعود لامور متعلقه بال Architecture ,, نعم هناك دوال تعطيك دقه اقل (ربما 9 digits او اكثر حسب سرعه ال processor ولكنها ليست دقيقه /صحيحه / سليمه )

#5

طيب يا اخي هل تذكر احدى هذه الدوال ؟ حتى وان لم تكن ذات دقة عالية المهم ان تعطي تاخير اقل مما يعطية ال timer ?

اللهم صل على محمد واله خير الانام وارزقنا شفاعتهم اجمعين

#6

صراحه لا اذكر ولا اجد وقت للبحث ,, آسف

حاول مع جوجل ,, وغالبا ستجد موضوع فى المنتدى يتكلم عن هذه النقطه لانها قتلت كلاما

#7

السلام عليكم...

نظرياً نعم!

عملياً يعتمد على عتاد الحاسوب (Hardware) و سرعته.

اقتباس
** الشرح التالي مترجم عن MSDN 2004:

بعض الأنظمة تتضمن عداد أداء عالي الدقة (High Resolution Performance Counter) يوفر فترات توقيت ذات دقة عالية.

إذا كان عداد الأداء عالي الدقة موجوداً في النظام فإنه يمكن استخدام الدالة QueryPerformanceFrequency للحصول على التردد (Frequency) في شكل عدد الدورات في الثانية (Counts per Second). قيمة الدورة تعتمد على المعالج (Processor)، فمثلاً في بعض الأنظمة قد تكون الدورة هي معدل نبض ساعة المعالج (Processor Clock).

الدالة الأخرى QueryPerformanceCounter تعطي القيمة الحالية لعداد الأداء عالي الدقة. باستدعاء هذه الدالة عند بداية و نهاية جزء من الكود يمكن للتطبيق أن يستعمل العداد كمؤقت عالي الدقة (High Resolution Timer).

في المرفقات مشروع صغير يطبق ما ورد في الشرح السابق، وجدته في كومة الأكواد التي عندي و لا أذكر من أين حصلت عليه، لكنني أضفت إليه بعض التعديلات.

High_Resolution_Timer.rar

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#8

جزيت خيرا يا ا خي ولو ني تاخرت بالرد ولكني كنت جدا مشغول

بارك الله فيك

اللهم صل على محمد واله خير الانام وارزقنا شفاعتهم اجمعين

#9

أخي بالنسبة لـ الدالة Delay في السي فهنا يقابلها doevents وهي تعطي تأخير فقط حتى استكمال تنفيذ الاجراء الذي سبقها .

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…