مؤلف:
Joan Hall
تاريخ الخلق:
28 شهر فبراير 2021
تاريخ التحديث:
1 تموز 2024
![اسباب بطء او تاخر عمليه اقلاع او فتح الكمبيوتر وحلها بدون برامج](https://i.ytimg.com/vi/VdBdDsTllfU/hqdefault.jpg)
المحتوى
هل سبق لك أن أردت إنشاء برنامج سي ينتظر فترة زمنية معينة؟ يمكنك تخصيص طريقة تحديد الوقت "سريعًا" ، على سبيل المثال: عند عرض صفحة منبثقة (إشعار أو تلميح) للعبة. ... حسنًا ، إليك بعض الطرق لإنشاء برنامج "لا يزال قائماً" ، تابع القراءة ...
خطوات
1 دع المعالج يعمل لفترة من الوقت دون التسبب في حدث يمكن ملاحظته.
2 لا تقم بإجراء أي عمليات أخرى أثناء هذا التأخير لإنشاء تأخير زمني بسيط.
طريقة 1 من 2: تقنية For-loop
1 استخدم حلقة "for" النموذجية متبوعة بعبارة فارغة لتنفيذ التأخير.
2 اكتب ما يلي ، على سبيل المثال:
- لـ (i = 1 ؛ i100 ؛ i ++) ؛
- عامل التشغيل الذي يتبع "؛" يجبر الكمبيوتر على تكرار الحلقة 100 مرة بدون حدث ملحوظ. إنه يخلق فقط تأخيرًا زمنيًا.
الطريقة 2 من 2: تقنية "النوم ()"
1 استخدم النوم (). تسمى الوظيفة sleep (int ms) ، والتي تم الإعلان عنها في TIME.H> ، مما يجعل البرنامج ينتظر فترة زمنية محددة بالمللي ثانية.
2 قم بتضمين السطر التالي في برنامجك قبل int main ():
- # تضمين TIME.H>
3 الصق عند الضرورة لتأخير البرنامج:
- ينام (1000) ؛
- غيّر "1000" إلى عدد المللي ثانية الذي تريد انتظاره (على سبيل المثال ، إذا كنت تريد تأخير ثانيتين ، فاستبدله بـ "2000".
- نصيحة: في بعض الأنظمة ، قد يتم تحديد القيمة بالثواني بدلاً من المللي ثانية. لذلك ، أحيانًا لا تكون 1000 ثانية واحدة ، ولكنها في الواقع 1000 ثانية.
عينة من الرموز
برنامج ينتظر عددًا معينًا من الثواني:
#include stdio.h> #include dos.h> int main () {int del؛ // فترة التأخير printf ("أدخل وقت التأخير (بالثواني):") ؛ scanf ("٪ i" ،؟ del) ؛ ديل * = 1000 ؛ // اضربها في 1000 لتحويلها إلى مللي ثانية Delay (del) ؛ // تأخير. printf ("تم") ؛ العودة 0 ؛ }
برنامج يعد تنازليًا من 10 إلى 0:
#include STDIO.H> #include TIME.H> int main () {int i؛ لـ (i = 10؛ i> = 0؛ i--) {printf ("٪ i n"، i) ؛ // اكتب تأخير رقم "العد التنازلي" الحالي (1000) ؛ // انتظر ثانية} عودة 0 ؛ }
نصائح
- الميلي ثانية هي 1/1000 من الثانية.
- يمكن تنفيذ الخوارزمية أعلاه باستخدام أي بنية حلقات متبوعة بالعامل الفارغ - "؛ باستخدام حلقات while أو do-while.
تحذيرات
- هذه الطريقة بشكل عام غير مجدية لأي شيء آخر غير برنامج تافه. بشكل عام ، استخدم أجهزة ضبط الوقت أو نهج يعتمد على الأحداث لإنجاز ذلك. خلاف ذلك ، سيصبح البرنامج غير مستجيب أثناء وقت التأخير وهذا ليس بالأمر الجيد دائمًا. أيضًا ، اختيار N في حلقة ، إذا كان يعتمد على تنفيذ الأوامر ، يمكن أن يكون له نتائج غير متوقعة. من الواضح أن المؤلف الأصلي لم يسمع أبدًا عن مترجم محسن ... يمكنه تحسين حلقة كاملة إذا لم يفعل أي شيء بالفعل!
- لاحظ أنه عند استخدام طريقة "for-loop" ، قد يستغرق الأمر فترة زمنية كبيرة جدًا لـ i ، نظرًا لأن العبارة الفارغة سريعة جدًا. قد لا تتناسب هذه الأعداد الكبيرة مع نوع عدد صحيح.
- إذا كنت تستخدم حلقة for-loop ، فيمكن للمجمع تحسين الكود ، وبما أن الحلقة لا تفعل شيئًا ، فقم بإزالتها. لا يحدث هذا عند استخدام Delay ().