البرمجة

تنفيذ الشيفرة كل 5 دقائق في C++

عندما يتعلق الأمر بتنفيذ جزء من الشيفرة كل 5 دقائق في C++ داخل حلقة do while، يمكن استخدام المواضيع (threads) بطريقة تسمح بتنفيذ الشيفرة الرئيسية في الحلقة الرئيسية دون التوقف أو التعليق عن طريق استخدام الوظائف المناسبة والتزامن بين المواضيع.

بما أنك ترغب في تجنب استخدام المواضيع، يمكن استخدام ميزة الوقت في C++ لتنفيذ قسم معين من الشيفرة كل 5 دقائق. لتحقيق ذلك، يمكنك استخدام مكتبة مثل و لإدارة الوقت والتنفيذ بشكل متزامن.

أولاً، يجب أن تكون قادرًا على استخدام لقياس الوقت. بعد ذلك، يمكنك استخدام دورة متكررة مع مؤشر لقياس الوقت لتنفيذ الجزء الخاص بك كل 5 دقائق. وهناك عدة طرق للقيام بذلك، ومنها استخدام الدالة std::chrono::steady_clock::now() للحصول على الوقت الحالي واستخدامها في تحديد متى يجب تنفيذ الجزء الخاص بك.

إليك مثالًا على كيفية تنفيذ هذا المفهوم:

cpp
#include #include #include int main() { // تعريف المتغير لتخزين الوقت الأولي auto start = std::chrono::steady_clock::now(); // عندما يكون هذا المتغير يساوي true، يتم تنفيذ الحلقة bool running = true; // حلقة التنفيذ do { // الشيفرة التي تريد تنفيذها بانتظام if(something) { // فعل شيء } if(something) { // فعل شيء } // الحصول على الوقت الحالي auto current = std::chrono::steady_clock::now(); // حساب المدة التي مرت منذ الوقت الأولي auto duration = std::chrono::duration_cast(current - start).count(); // إذا مرت 5 دقائق، قم بتنفيذ الشيفرة هنا if (duration >= 5) { // فعل شيء مرة كل 5 دقائق std::cout << "Do something every 5 minutes" << std::endl; // إعادة تعيين الوقت الأولي للحساب مرة أخرى start = std::chrono::steady_clock::now(); } // الانتظار لبعض الوقت لتجنب استنزاف المعالج std::this_thread::sleep_for(std::chrono::seconds(1)); } while (running); return 0; }

هذا المثال يعتمد على و لقياس الوقت وإضافة انتظار بين دورات الحلقة. تذكر أنه يجب استخدام المناسبات المناسبة للتحكم في الحلقة الرئيسية وضمان تشغيلها بشكل مستمر دون توقف أو تعليق.

المزيد من المعلومات

بالطبع، سأزيد من التفاصيل لتوضيح الكود والمفاهيم المستخدمة:

  1. المكتبات المستخدمة:

    • : لاستخدام إدخال وإخراج البيانات.
    • : لإجراء العمليات المتعلقة بالوقت والتوقيت.
    • : لإنشاء وإدارة المواضيع الفرعية.
  2. الوقت والتوقيت:

    • std::chrono::steady_clock::now(): تستخدم للحصول على الوقت الحالي منذ بداية البرنامج أو الحصة الزمنية (epoch).
    • std::chrono::duration_cast: تستخدم لتحويل الفواصل الزمنية من نوع إلى آخر (على سبيل المثال، من نانوثانية إلى ثانية أو دقيقة).
  3. التحكم في الوقت:

    • std::chrono::steady_clock::now() يُستخدم لتحديد الوقت الحالي.
    • يُستخدم std::chrono::duration_cast لحساب المدة التي مرت منذ بداية البرنامج.
    • يتم استخدام std::this_thread::sleep_for لوقف تنفيذ البرنامج لفترة محددة من الوقت. هنا، نستخدمها لتوقيف البرنامج لثانية واحدة لتجنب استنزاف المعالج.
  4. الحلقة التنفيذية:

    • تحتوي الحلقة على متغير bool (running) يُستخدم للتحكم في تنفيذ الحلقة.
    • تحتوي الشرط while (running) على دالة تُحدد متى يتم إنهاء التنفيذ (في هذه الحالة، عندما يتم تعيين running إلى قيمة false).
    • تقوم الحلقة بتنفيذ الشيفرة الموجودة داخلها، وبعد كل تنفيذ، تُحسب المدة التي مرت منذ البداية ويُتم التحقق مما إذا كانت هذه المدة تفوق 5 دقائق. إذا كان الأمر كذلك، يتم تنفيذ الشيفرة الموجودة داخل الشرط المتعلق بتنفيذ الشيفرة كل 5 دقائق.
  5. تنفيذ الأوامر كل 5 دقائق:

    • يتم تحديد متى يجب تنفيذ الأوامر بناءً على مقارنة الوقت الحالي بالوقت السابق الذي تم فيه تنفيذ الأوامر. إذا مرت 5 دقائق، يتم تنفيذ الأوامر وإعادة تعيين الوقت السابق.

هذه هي النقاط الرئيسية للكود والتفاصيل المتعلقة بتنفيذ الشيفرة كل 5 دقائق في C++ داخل حلقة do while. تأكد من فهم الكود وكيفية عمله، وتكييفه وفقاً لمتطلباتك الخاصة إذا لزم الأمر.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر