سؤال

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

التطبيق عبارة عن تطبيق C/C++ أصلي يعمل على Windows Mobile 5.0 أو الإصدارات الأحدث.

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

المحلول

الوظيفة التي تحتاجها هي:

CeRunAppAtTime( appname, time )

هذا ليس التوقيع الدقيق، هناك أيضًا CeRunAppAtEvent, ، يجب أن يكونا كلاهما في مستندات MSDN (ولكن الارتباط عديم الفائدة بالطريقة التي تتغير بها عناوين URL الخاصة بـ MSDN دائمًا)

الطريقة العادية لاستخدام هذه (و RunAppAtTime في العالم المدار عبر OpenNETCF.Win32.Notify ) هو أنه بالنسبة للتنفيذ الدوري، في كل مرة يتم تشغيل تطبيقك، فإنه سيعيد ترتيب نفسه في وقت التشغيل التالي.

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

نصائح أخرى

استخدم CeSetUserNotificationEx بدلاً من CeRunAppAtTime (حيث تم إهمال هذا).

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