PDA

View Full Version : سوال: timer در سی شارپ مشکل داره



esmael_g
یک شنبه 04 بهمن 1394, 11:09 صبح
سلام دوستان عزیز سایت برنامه نویس یه سوال دارم یه برنامه نوشتم که چند تا (5) عدد تایمر داره خوب الان هر تایمر رو می خوام جدا فعال کنم هر کدام محاسبه برای خودش انجام بده زمانی که تایمر یک رو فعال می کنم تایمر 2بعد از چند ثانیه فعال خلاصه هر کدوم تو بازه زمونی متفاوت فعال می کنم اما زمانی که رو دکمه از سرگیری برای شروع و محاسبه دوباره از اول کلیک می کنم اونایی دیگه هم دوباره از اول شروع می کنن اصلا گفتم هر کدوم رو در بازه های زمانی متفاوت فعال می کنم زمانی که مثلا تایمر 1 حدودا 10ثانیه که فعال شده تایمر 2 رو که فعال می کنم اونم از ثانیه 11 شروع می کنه بقیه تایمر ها هم همین جوری خواهش می کنم کمک کنید لطفا

esmael_g
یک شنبه 04 بهمن 1394, 14:19 عصر
خواهش می کنم یه راهنمایی کنید لطفا

rooterror
یک شنبه 04 بهمن 1394, 15:11 عصر
سلام برای طرح سوالات به صورت مبتدی باید همراه با سورس و توضیح و درخواست راهنمایی کمک بگیرید

اینطوری پیچیده میشه مسئله

alexmcse
یک شنبه 04 بهمن 1394, 18:07 عصر
سلام
دوست غزیز
rooterror (http://barnamenevis.org/member.php?355607-rooterror) درست فرمایش میدهد
برای حل کردن سول باید کدهایی که نوشته اید در تاپیک قرار دهید

esmael_g
یک شنبه 04 بهمن 1394, 19:41 عصر
دوستان خواهش می کنم کمکی کنید لطفا کد ها رو برداشتم الان بجاش خود برنامه رو می زارم لطفا کنید یه راهنمایی کنید خوب
http://s6.picofile.com/file/8235212550/WindowsFormsApplication1.rar.html
دوستان خواهش می کنم یه راهنمایی کنید این تایمرش هماهنگن این که نمی شه باید یه راهی باشه هر کدوم برای خودش کار کنه

alexmcse
دوشنبه 05 بهمن 1394, 13:43 عصر
دوستان خواهش می کنم کمکی کنید لطفا کد ها رو برداشتم الان بجاش خود برنامه رو می زارم لطفا کنید یه راهنمایی کنید خوب
http://s6.picofile.com/file/8235212550/WindowsFormsApplication1.rar.html
دوستان خواهش می کنم یه راهنمایی کنید این تایمرش هماهنگن این که نمی شه باید یه راهی باشه هر کدوم برای خودش کار کنه

سلام
پروژه رو دانلود کن
اصلاح کد درون فرم 2 است

http://s6.picofile.com/file/8235230326/WindowsFormsApplication1.rar.html

esmael_g
دوشنبه 05 بهمن 1394, 13:43 عصر
ممنون ازت دوست عزیز

FastCode
دوشنبه 05 بهمن 1394, 14:25 عصر
برای اینکه همه timer ها از message loop ه main thread استفاده میکنند.
برای اینکه از هم کاملا مجزا باشند از یک thread جداگانه برای هر عملیات استفاده کنید.
اگر زمان کارتون کوتاه هست و دقت زیاد نیاز دارد میتونید از System.Timer به جای System.Windows.Forms.Timer استفاده کنید.
در کل پیشنهاد من ThreadPool + AutoResetEvent و System.Timer به صورت همزمان هست.

مطالعه این موارد چند هفته طول میشکه انتظار نداشته باش توی چند روز بفهمی یا سوال بعدیت رو جواب بدم.

ehsanzargar@gmail.com
پنج شنبه 05 فروردین 1400, 23:45 عصر
سلام دوستان من یه مشکل دارم موقعی که برنامه اجرا می شود ابتدا تایمر اجرا می شود بعد فرم نمایش داده میشه ولی من میخوام ابتدا فرم نمایش داده بشه و بعد تایمر اجرا بشه

the king
جمعه 06 فروردین 1400, 01:08 صبح
سلام دوستان من یه مشکل دارم موقعی که برنامه اجرا می شود ابتدا تایمر اجرا می شود بعد فرم نمایش داده میشه ولی من میخوام ابتدا فرم نمایش داده بشه و بعد تایمر اجرا بشه
رخداد Form.Load قبل از اینکه فرم فرصت نمایش پیدا کنه رخ میده. شما باید از رخداد Form.Shown استفاده کنید که بعد از نمایش فرم رخ میده.
اون فرم رو حالت طراحی ظاهرش در ویژوال استدیو انتخاب کنید.
در پنجره Properties روی آیکون Events که لیست رخداد های فرم رو نشون میده کلیک کنید.
روی رخداد Shown اش Double Click کنید و اون کد هایی که در Form1_Load نوشته اید رو از اونجا پاک کنید و منتقل کنید داخل Form1_Shown

private void Form1_Shown(object sender, EventArgs e)
{
timer1.Start();
timer1_Tick(sender, e);
}