PDA

View Full Version : سوال: سئوال در مورد تایمر



sa_ghaznavi
یک شنبه 03 آبان 1388, 15:50 عصر
من یک تایمر دارم که هر 2 ثانیه یک بار تعدای رکورد را از بانک اطلاعاتی می خواند و در جای دیگری می نویسد .
سئوال اینکه اگر در یکی از دفعاتی که تایمر اجرا می شود تعداد رکوردها زیاد باشند به طوری که 20 ثانیه خواندن و نوشتن آنها طول بکشد ، آیا تایمر صبر می کند تا خواندن و نوشتن در 20 ثانیه تمام شود و بعد روال جدید خود را آغاز می کند و یا اینکه پس از 2 ثانیه روال جدیدی را آغاز می کند که با روال قبلی تداخل خواهد داشت .

mrsh_1988
یک شنبه 03 آبان 1388, 16:01 عصر
سلام
به نظر من صبر نمی کنه که پردازشش تموم بشه .
چون تایمر دائما در حال تغییر است و به پردازش ربطی نداره .
بنابراین هر چقدر هم که پردازشش طول بکشه فرقی نمی کنه و هر 2 ثانیه عملیات رو انجام میده.

saeeedft
یک شنبه 03 آبان 1388, 16:31 عصر
من هم با گفته دوستمون موافقم، تایمر طبق اینتر والی که براش تعریف میشه عملیات جدید رو شروع میکنه

saied_genius
یک شنبه 03 آبان 1388, 16:40 عصر
راه حل:


bool check = false;

private void timer1_Tick(object sender, EventArgs e)
{
if (!check)
{
check = true;
//
//شروع کار
//
check = false;
}
}

موفق باشيد.

saeeedft
یک شنبه 03 آبان 1388, 17:01 عصر
اقا با این کار عملیات در یک بازه انجام میشه(کل عملیات)؟

saied_genius
یک شنبه 03 آبان 1388, 17:06 عصر
خوب بله ديگه!!

هر دو ثانيه چک مي کند.

اگر check هنوز false بود وارد پروسه مي شود.

وقتي وارد شد check رو true مي کند.

وقتي true شد يعني در اصل تايمر وقف همان پروسه مي شود و تا وقتي که پروسه کامل تمام نشود دوباره false نمي شود.

من خودم هميشه از اين روش استفاده مي کنم، هيچ مشکلي هم ندارم.

حتي اگر بگذاريد روي 100 ميلي ثانيه .


سوال بود در خدمتم.

موفق باشيد.

saeeedft
یک شنبه 03 آبان 1388, 17:18 عصر
ok، خیلی عالی