نمایش نتایج 1 تا 10 از 10

نام تاپیک: آیا تایمر سرعت برنامه را کاهش می دهد؟

  1. #1
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    آیا تایمر سرعت برنامه را کاهش می دهد؟

    آیا استفاده از چند تایمر در یک صفحه سرعت آن را کاهش می دهد ؟

    به چه میزان ؟

    مثلاً 3 تایمر در یک صفحه (حداکثر)

    کاهش سرعت به اندازه ای هست که لازم به نظر برسد که تایمرها حذف شوند؟

  2. #2

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟آیا

    دوست عزیز تایمر هم یه thread حساب میشه .
    و هیچ تاثیری در کند شدن برنامه ندارد.
    شما 1000 تا تایمر هم که داشته باشید که هر 1 میلی ثانیه فعال باشه هیچ روندی در اجرای برنامه نداره.
    اون چیزی که برنامه ی شما رو کند می کنه دستورات هست.

    مثلاً توی یک تایمر یه حلقه می زنیم که 3 ثانیه این حلقه به طول می انجامه و برنامه یه توقف نسبت به حلقه خواهد داشت.

  3. #3
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟آیا

    نقل قول نوشته شده توسط hozouri مشاهده تاپیک

    مثلاً توی یک تایمر یه حلقه می زنیم که 3 ثانیه این حلقه به طول می انجامه و برنامه یه توقف نسبت به حلقه خواهد داشت.
    درست متوجه نشدم یعنی چنین کدی ممکنه سرعت برنامه رو کاهش بده؟ کدی که داخل خود تایمر هست یا اینکه صرفاً زمانی که توی خود تایمر یه حلقه مثلاً for بذاریم؟


    sec += 1;
    timer1.Interval = 500;
    if (sec > 6)
    {
    timer1.Enabled = false;
    sec = 0;
    objwrong.FlashPlayerForm.Close();
    button1.Enabled = true;
    }
    و با هر کلیک روی باتن دوباره تایمر فعال می شه


    private void button1_Click(object sender, EventArgs e)
    {
    objwrong = new wrong();
    objwrong.Fwrong();
    timer1.Enabled = true;
    button1.Enabled = false;
    }

  4. #4
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟آیا

    دوست عزیز تایمر هم یه thread حساب میشه .
    و هیچ تاثیری در کند شدن برنامه ندارد.
    شما 1000 تا تایمر هم که داشته باشید که هر 1 میلی ثانیه فعال باشه هیچ روندی در اجرای برنامه نداره.
    این حرف اساس درستی نداره .
    اولا به خاطر اینکه timer در thread دیگه ای اجرا نمیشه .
    دوما تعداد timer ها بسته به نوع cpu و سیستم عامل متغیر است .

    استفاده از Timer بستگی به نوع کاری است که قراره ما انجام بدهیم . در بعضی موارد بهترین گزینه در برخی دیگر بدترین گزینه !

  5. #5

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟آیا

    نقل قول نوشته شده توسط esmaeily-hosein مشاهده تاپیک
    این حرف اساس درستی نداره .
    ا
    ببخشید , معذرت می خوام , دیگه دانش و تجربیاتم رو به کسی نمی گم.

    نقل قول نوشته شده توسط esmaeily-hosein مشاهده تاپیک
    اولا به خاطر اینکه timer در thread دیگه ای اجرا نمیشه .
    ؟؟؟ میشه ما رو هم مطلع بفرمایید منظور شما چی هست ؟

    نقل قول نوشته شده توسط esmaeily-hosein مشاهده تاپیک
    دوما تعداد timer ها بسته به نوع cpu و سیستم عامل متغیر است .
    دوست عزیز چی تایمر ها , سایکل های تایمر رو می فرمایید (این جوری باشه که سی پی یو های قدیمی توی محاسبه میلی ثانیه اشتباه می کنند) یا تعداد تایمر های قرار گرفته بر روی اشیاء
    (که اینم به حافظه رم بستگی داره)

    نقل قول نوشته شده توسط esmaeily-hosein مشاهده تاپیک
    استفاده از Timer بستگی به نوع کاری است که قراره ما انجام بدهیم . در بعضی موارد بهترین گزینه در برخی دیگر بدترین گزینه !
    اینم من پیشاپیش خدمت دوستان عرض نمودم ...

    باز هم از دوستان معذرت خواهی می کنم

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟آیا

    سلام
    ببینید تا اونجایی که میدانtimerیک thread نیست چون سرعت ثابت داره و رابطه مستقیم با ساعت سیستم دارد.
    ولی در مورد سرعت باید عرض کنم که هیچ رابطه ای بین سرعت و ساعت سیستم برقرار نیست بلکه یک نوع گزینه برای پردازش میباشد و سرعت عملیات بستگی به کدهای مورد استفاده در پروسه تایمر دارد نه خود تایمر.

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟آیا

    نقل قول نوشته شده توسط tdkhakpur مشاهده تاپیک
    سلام
    ببینید تا اونجایی که میدانtimerیک thread نیست چون سرعت ثابت داره و رابطه مستقیم با ساعت سیستم دارد.
    با سلام
    دوست گرامی، یک تایمر داریم که مربوط به CPU و پایه IRQ 0 هست که ساعت کامپیوتر رو کنترل می‌کنه و اصلاً به این بحث ربطی نداره.
    در مورد کنترل timer مطمئن نیستم ( هر چند که نباید فرق عمده‌ای داشته باشه)، اما اگه از System.Threading.Timer استفاده بشه قطعاً در یک Thread جداگانه قرار می‌گیره.

    صبا صبوحی

  8. #8
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟

    []ببخشید , معذرت می خوام , دیگه دانش و تجربیاتم رو به کسی نمی گم.[/
    بهتره به مستندات C++‎ در این مورد نگاهی بندازید . تا متوجه منظور من در مورد سیستم عامل باشید و cpu بشی .

    توابع Api مربوط به SetTimer , Kill Timer نیز به دردت میخوره .
    کسانی که مقداری visual C++‎ کار کرده باشند منظور مرا بهتر درک میکنند .

  9. #9
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟

    دوستان دست همگی درد نکنه

    من به هر حال 4 تا تایمر تو بعضی از صفحاتم گذاشتم که واقعاً هم نمی شد کمترش کنم

    THX

  10. #10

    نقل قول: آیا تایمر سرعت برنامه را کاهش می دهد؟

    بله، اگر تعداد تایمرها در برنامه زیاد بشه سرعت میاد پایین. هم خودم این رو تجربه کردم و هم توی MSDN خوندم. باید توجه داشت که تایمرها جز منابع ویندوز محسوب میشن! البته مقدار پایین اومدن سرعت بستگی به دو چیز داره:
    1) مقدار Interval تایمرها :
    هر چه رویداد Tick تایمرها زود تر فراخوانی بشه، سرعت هم پایین تر میاد.

    2) کد درون رویداد Tick: این هم که طبیعیه! هرچه کد سنگین تر باشه، سرعت هم به همون نسبت پایین تر میاد.

    ضمنا تایمرها چند نوع دارند. اگر از تایمر موجود در ToolBox ویژوال استدیو استاده می کنید، باید توجه داشته باشید که این تایمرها در همون Thread برنامه اجرا میشن و Thread جداگانه ای براشون ساخته نمیشه، به نقل از MSDN (برای این کلاس: System.Windows.Forms.Timer)


    A Timer is used to raise an event at user-defined intervals. This Windows timer is designed for a single-threaded environment where UI threads are used to perform processing. It requires that the user code have a UI message pump available and always operate from the same thread, or marshal the call onto another thread.


    اما همون طور که دوستمون SabaSabouhi فرمودن، اگه با استفاده از System.Threading.Timer یک تایمر بسازیم، این تایمر در یک Thread دیگه اجرا میشه.

    نقل از MSDN:
    Use a TimerCallback delegate to specify the method you want the Timer to execute. The timer delegate is specified when the timer is constructed, and cannot be changed. The method does not execute on the thread that created the timer; it executes on a ThreadPool thread supplied by the system.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •