آژانس هواپیماییexchanging

CPU Usage

شروع موضوع توسط hichkas021 ‏1 جولای 2007 در انجمن Visual Basic 6

  1. hichkas021

    hichkas021 Registered User

    تاریخ عضویت:
    ‏7 می 2006
    نوشته ها:
    189
    تشکر شده:
    0
    محل سکونت:
    No Where
    سلام به همه استادان گرامی,

    من توی برنامه یه حلقه دارم که خیلی تکرار می شه برای همین مدتی طول می شکه و CPU Usage به 100 % می رسه و پنجره برنامه قفل می کنه. می خواستم بدونم راهی نیست که با VB استفاده از CPU رو محدود کرد. مثلا از 50% بیشتر استفاده نکنه و حلقه متوقف بشه.
     
  2. saalek110

    saalek110 Registered User

    تاریخ عضویت:
    ‏10 آپریل 2007
    نوشته ها:
    212
    تشکر شده:
    1
    سلام.
    من نمی دونم چرا از حلقه استفاده کردید ولی اگر میشه به جای آن از تایمر استفاده کنید.
    مثلا اگر تایمر هر 1 ثانیه تریگر بشه و کارش یک دهم ثانیه طول بکشه آنگاه 9 دهم ثانیه cpu در اختیار قسمتهای دیگر برنامه و یا برنامه های دیگر اجرا شده در ویندوز است.
     
  3. firebird

    firebird Registered User

    تاریخ عضویت:
    ‏2 جولای 2005
    نوشته ها:
    1,424
    تشکر شده:
    9
    بهترین راه thread هست. من با دلفی به طور گسترده از thread استفاده میکنم و هیچ مشکلی برام پیش نمیاد. اینو میدونم که VB هم از thread پشتیبانی میکنه ولی کار نکردم. اگه سرچ کنید مطمئناً کدهای خوبی پیدا می کنید.
     
  4. Mamylo

    Mamylo کاربر فعال بازیهای کامپیوتری کاربر فعال

    تاریخ عضویت:
    ‏19 مارس 2005
    نوشته ها:
    947
    تشکر شده:
    12
    محل سکونت:
    In the heart of any lover in the world

    سالك عزيز دقيقا درست فرمودن
    در صورتي كه برنامه تون مثل installerها باشه اين راه بهترين راهه
     
  5. hichkas021

    hichkas021 Registered User

    تاریخ عضویت:
    ‏7 می 2006
    نوشته ها:
    189
    تشکر شده:
    0
    محل سکونت:
    No Where
    آقا دستت درد نکنه. اصلا حواسم به تایمر نبود. مشکلم حل شد...
     
  6. firebird

    firebird Registered User

    تاریخ عضویت:
    ‏2 جولای 2005
    نوشته ها:
    1,424
    تشکر شده:
    9
    استفاده زیاده از حد از تایمر کل ویندوز رو از نظر سرعت دچار افت میکنه ولی thread این مشکل رو نداره. منتهی thread یه کم سخت تر هست.
     
  7. saalek110

    saalek110 Registered User

    تاریخ عضویت:
    ‏10 آپریل 2007
    نوشته ها:
    212
    تشکر شده:
    1
    خواهش می کنم.
    ----------------------------
    فرمایش استاد عزیز firebird تایید میشه. در وی بی یک جا خواندم که بیش از 3 تایمر استفاده نکنید.
    اما thread باید خیلی کارآمد باشه. ولی من تابحال آن را نساخته ام و نمی توانم نظر بدهم. البته یکی دو بار در سی شارپ ساختم ولی زیاد ور نرفتم تا ببینم با سیستم چه رفتاری دارد.
     
  8. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    سلام
    خوب هستيد ببخشيد من نبودم
    فكر كنم بهترين كار استفاده از تابع doevents است .
    البته از تابع sleep هم ميتونيد در كنار doevents استفاده كنيد
    به اميد ديدار