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

نام تاپیک: تکرار کد ها هر 5 دقیقه

  1. #1

    تکرار کد ها هر 5 دقیقه

    با سلام خدمت دوستان عزیز
    من میخوام توی برنامه ام هر 5 دقیقه یک کار مشخصی رو تکرار کنم
    لطفا منوراهنمایی کنید.
    ممنون

  2. #2
    کاربر دائمی آواتار abbas.oveissi
    تاریخ عضویت
    دی 1389
    محل زندگی
    تهران
    پست
    578

    نقل قول: تکرار هر 5 دقیقه

    نقل قول نوشته شده توسط x_p_sp2 مشاهده تاپیک
    با سلام خدمت دوستان عزیز
    من میخوام توی برنامه ام هر 5 دقیقه یک کار مشخصی رو تکرار کنم
    لطفا منوراهنمایی کنید.
    ممنون
    از تایمر استفاده کن،داخل toolbox میتونی پیداش کنی

  3. #3

    نقل قول: تکرار هر 5 دقیقه

    کافی است که خاصیت Interval اون رو به 5000 تنظیم کنی و خاصیت Enabled اونو به True ست کنی و در روی تایمر دابل کلیک کنی و کدی که می خواهی هر 5 ثانیه اجرا بشه رو اونجا بنویسی
            private void timer1_Tick(object sender, EventArgs e)
    {
    //Your code here
    }

  4. #4
    کاربر تازه وارد آواتار meysamrt
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    سن
    41
    پست
    87

    نقل قول: تکرار هر 5 دقیقه

    همونطور که rezatati عزیز گفت عمل کن منتها مقدار Interval رو با 300,000 تنظیم کن

  5. #5

    نقل قول: تکرار هر 5 دقیقه

    اولا هر 5 دقيقه خواستن نه هر 5 ثانيه. كه مطمئن نيستم اينتر-ول تايمر تا پنج دقيقه بكشه!
    تايمر يك مشكلي داره(البته مشكل نيست بلكه محدوديته) و اون اينه كه مثل صدا زدن يك تابع، تا وقتي كه كار تابع تموم نشه، ساير بخشهاي برنامه از كار ميفته(البته اگه كاري كه تايمر انجام ميده طولاني باشه مثل بك آپ گيري از ديتابيس حجيم و فشرده كردن اون و ...)
    پيشنهاد من استفاده از نخ هست:

    Public Form1()
    {
    Thread t=new Thread(backup);
    t.Start();
    }

    void backup()
    {
    while(true)
    {
    //do ur jobs and then...
    Thread.Sleep(TimeSpan.FromMinutes(5));
    }
    }

  6. #6
    کاربر تازه وارد آواتار meysamrt
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    سن
    41
    پست
    87

    نقل قول: تکرار هر 5 دقیقه

    جناب rejnev عزیز.
    اولا تایمر خودش یک Thread ایجاد میکنه و تا هر زمانی که بخواید جواب میده.
    ثانیا کد شما هم Thread رو میخوابونه همون کاری که تایمر داره انجام میده

  7. #7

    نقل قول: تکرار کد ها هر 5 دقیقه

    باتشكر از همه دوستان كه به اين زودي جوابم رو داديد.


    بهشت برنامه نويسان پارسي

    https://barnamenevis.org

  8. #8

    نقل قول: تکرار کد ها هر 5 دقیقه

    جناب meysmart
    Tick خوردن تایمر مثل صدا زدن تابع می مونه. خط جاری برنامه به تابع منتقل میشه و بعد از اتمام به صدا زننده بر میگرده.
    ولی Thread به اینصورت نیست و موازی با برنامه اجرا میشه.
    اگه فکر میکنید کارتون نیاز به موازی بودن با پردازش جاری داره از thread استفاده کنید. در غیر اینصورت تایمر هم کار راه انداز خواهد بود.
    مثلا حتما با کند بودن لود شدن گزارش کریستال ریپورت برخوردید که برنامه تا زمانی که گزارش لود بشه توی اصطلاحا هنگ قرار میگیره(در واقع هنگ نیست بلکه UI پاسخ نمیده)
    حالا اگه گزارش رو توی یک نخ دیگه بندازید، کاربر ضمن کار با سایر بخشها، منتظر لود گزارش میمونه که زیاد آزار دهنده نیست.

  9. #9

    نقل قول: تکرار کد ها هر 5 دقیقه

    اولا تایمر خودش یک Thread ایجاد میکنه و تا هر زمانی که بخواید جواب میده.
    من با این گفته مخالف هستم. چون در این صورت، تایمر توانایی استفاده از اجزای Thread فرمی که توش قرار گرفته رو نداره.(مانند کنترل ها، توابع).
    اگر هم فرض براین باشه که تایمر یه Thread پشته پرده ایجاد میکنه و بعد دستوراتو داخل اون قرار میده، دراین صورت چرا روی Thread فرم که هیچ ربطی به Thread تایمر نداره تاثیر می زاره؟ و در دستورات سنگین باعث قفل شدن فرم میشه؟

    اما در مورد سوالی که دوستمون پرسیدن؛ به نظر من بستگی به حجم دستوارتت داره، اگه انقدر سنگینه که برنامتو، دچار وقفه می کنه، بهتره از Thread استفاده کنی، درغیر این صورت همون تایمر کارتو راه مینداره.

  10. #10
    کاربر دائمی آواتار jigily
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    زير سايه حضرت صاحب
    پست
    320

    نقل قول: تکرار کد ها هر 5 دقیقه

    تايمر زمان زياد قبول نميكنه؟ من ميخوام هر يك ساعت برنامم اطلاعات را داخل ديتا بيس ذخيره كنه...
    از thread استفاده كردم اما جواب نميده از كدي كه قبل sleep ميخوام اجراش كنم ارور ميگيره..

  11. #11

    نقل قول: تکرار کد ها هر 5 دقیقه

    اولا تایمر خودش یک Thread ایجاد میکنه و تا هر زمانی که بخواید جواب میده.
    خیر ، شئ Timer ترد جدید ایجاد نمیکنه بلکه دستورات شما رو در Context ترد اصلی ( Main Thread ) اجرا میکنه پس برنامه در هر دور اجرای رویداد تایمر تا به پایان رسیدن روند اجرای دستورات این رویداد فریز میشه مگر اینکه دستورات داخل تایمر نیاز به performance بالایی برای اجرا نداشته باشن .

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

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