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

كيف اجعل برنامجى لا يستغل كل مساحة ال Processor ولكن مساحة محددة مثلآ 15% من مساحة البروسسور ؟

مغلق
بدأه ramysarwat في 17 أكتوبر 2007 · 4 رد · 675 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجو مساعدتى فى كود لجعل برنامجى لا يستغل كل مساحة ال processor ولكن مساحة محددة مثلآ 15% من مساحة البروسسور ؟

وشكرآ

#2

لا يوجد ضمان يؤكد لك اللى أنت عايزة الموضوع يعتمد على الكود لكن ممكن تـ :

  • تقلل الـ Priority بتاعة البرنامج(راجع AllAPI).
  • راجع كودك لأزالة اى شئ يستهلك موارد النظام و أستبدله بكود أخف أن أمكن ( كدوال API ).
  • أستعمل دالة Sleep مع DoEvents

وهكذا.

#3

الف شكر يا استاذ msayed2004 على ردك ولكن ما هى فائدة الدالة sleep وكيف استطيع استخدامها مع doevents؟

اعتقد ان doevents لا تستخدم معها دوال اخرى !

#4

نتكلم كلام عام ( بالبلدى يعنى ) لو عندك Loop بياخذ وقت طويل و مجهود من الجهاز (بـ Loop و Do While مثلا ) و لم تستعمل DoEvents هتلاقى البرنامج دخل فى الغالب فى حالة Not Responding إلى أن ينتهى الـ Loop و يستفيق البرنامج ( أن فاق أساسا ! ).

بأستعمال DoEvents هتقدر تعمل الـ Loop بدون دخول البرنامج فى حالة عدم الأستجابة (تاركا الحرية لباقى الـ Events لتعمل) لكن هيوصل الـ CPU Usage لـ 100% فى الغالب (لاحظ أنه كلام عام).

أما لو أستعملت دالة Sleep مع DoEvents فأنت زى اللى بتكبس فوق نفسها علشان تتوقف عن أستهلاك الـ CPU Usage , هتلاقى فيه ناس بيستعملوا Sleep قبل DoEvents (لا أحبها) و ناس بيحطوها بعدها (مثلى) و ناس قبلها و بعدها (علشان يكبروا دماغهم) طبعا مع زمن ضئيل جدا ;) كـ 10 الى 50 ميللى ثانية :

'Inside your loop & the Sleep API should be declared !
Sleep 10
DoEvents
Sleep 10

لكن طبعا لكل شئ عيب , فالـ Loop اللى هيتم و يدخل البرنامج فى حالة عدم أستجابة ممكن (مش دائما يعنى) يتم فى دقيقة أما أن تم مع DoEvents و Sleep تاركا باقى أحداث البرنامج تعمل دون رفع أستهلاك الموارد فممكن يستغرق 3 دقائق أو أكثر.

#5

الف شكر ليك يا فنان على اجابتك المفيدى جدا دى

هذا الموضوع مغلق.

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

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

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

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

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