Recent

Author Topic: بديل sleep  (Read 2093 times)

Al-Eid

  • Jr. Member
  • **
  • Posts: 54
بديل sleep
« on: November 09, 2021, 11:27:27 am »
السلام عليكم
وجدت هذا الكود والذي يستعمل في عملية تاخير أو إنتظار بذل الأمر sleep
Code: Pascal  [Select][+][-]
  1. procedure MyDelay(milliSecondsDelay: int64);
  2. var
  3.   stopTime : TDateTime;
  4. begin
  5.   stopTime := IncMilliSecond(Now,milliSecondsDelay);
  6.   while (Now < stopTime) and (not Application.Terminated) do
  7.     Application.ProcessMessages;
  8.  
  9. end;
  10.  
لا يقوم هذا الإجراء بتعطيل البرنامج كما يفعل الأمر slpee
هل هناك بديل أحسن من slpee و هذ الكود

Zaher

  • Hero Member
  • *****
  • Posts: 662
    • parmaja.org
Re: بديل sleep
« Reply #1 on: November 09, 2021, 10:56:54 pm »
هذا الكود سيء مقارنة مع ال sleep
ال sleep تعطي للمعالج الحرية بتشغيل ثريدات اخرى او برامج اخرى
بينما هذا الكود يقوم باشغال حيز من المعالج ولو انه هنالك  Application.ProcessMessages
و هو غير دقيق

يوجد بديل نعم وهو ال TEvent
لكن لنسأل اولأ لماذا السؤال؟

Al-Eid

  • Jr. Member
  • **
  • Posts: 54
Re: بديل sleep
« Reply #2 on: November 10, 2021, 08:49:29 am »
الأمر بسيط بالنسبة لـي sleep أو هذا الإجراء كل ما في الأمر
عند إجراء أي عملية على قاعدة المعطيات يقوم البرنامج بإظهار رسالة على label يخبر المستخدم بنجاح الأمر ثم تختفي الرسالة مع موسيقة Beep وهذا الأمر قد يستغرق أقل من ثانتين
بالنسبة لـ sleep يقوم بتوقيف البرنامج بينما الإجراء وحسب الرابط فإنه لا يقوم بتعطيل البرنامج أنظر
https://www.tweaking4all.com/forum/delphi-lazarus-free-pascal/lazarus-pascal-how-to-make-a-delay-sleep-without-locking-up-your-application/
 لذلك أردت أن أطرح الموضوع لـمعرفة طرق أخر أو أوامر أخر أحسن sleep

قد تخبرني عن أداة Timer
نعم تكفي بالغرض ولكن أنا أريد أن أجعل إجراء في وحدة عامة يمكن منادته في جميع النوافذ و بارمجي

Zaher

  • Hero Member
  • *****
  • Posts: 662
    • parmaja.org
Re: بديل sleep
« Reply #3 on: November 10, 2021, 11:44:31 am »
المؤقت ال Timer هو الافضل
حتى الكود اعلاه له مساوءه، عليك ايجاد استراتيجية افضل، انا نفس الى الآن استعمل المؤقت ببرامجي لمثل هذا النوع من التنبيهات

https://github.com/cs-erp/pgtools/blob/master/MainForms.pas#L611
https://github.com/cs-erp/pgtools/blob/master/MainForms.pas#L637

Al-Eid

  • Jr. Member
  • **
  • Posts: 54
Re: بديل sleep
« Reply #4 on: November 10, 2021, 03:41:05 pm »
شكرا أخ زاهر على النصيحة وبارك الله فيك

 

TinyPortal © 2005-2018