سؤال

أريد أن أسمي وظيفة درجة الأعمال بعد كل ساعتين. أنا لا أحصل على أي طريقة لتنفيذ نفس الشيء في C/C ++ دون استخدام حلقة الوقت. مشكلتي هي أنه لا يمكنني استخدامه بينما (1) لأن هذا لا يعيد السيطرة لمزيد من التنفيذ.

أي مؤشر في هذا التحييد يكون مفيدًا .... :)

thnaks

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

المحلول

في عادي C ، كنت أفكر في استخدام alarm(2) أو setitimer(2) المهام. بدلاً من ذلك ، تفرخ خيط وافعل الانتظار من هناك.

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

نصائح أخرى

للحصول على حل عام ، يمكنك بدء تشغيل مؤشر ترابط ، والذي يرسل بعض الرسائل إلى الموضوع الرئيسي بعد ساعتين.

بالنسبة إلى Linux ، يمكنك استخدام هذا:

http://linux.die.net/man/3/alarm

ثم التعامل مع إشارة sigalrm

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