PDA

View Full Version : Delay



reza_N
یک شنبه 04 شهریور 1386, 13:51 عصر
میخوام خارج از timer1.tick و در متدی دیگر چک کنم که آیا این رویداد رخ داده یا نه(آیا زمان تایمر تمتم شده یا نه). البته از یک متغییر bool استفاده کردم که جواب نداد اگه رهنمایی کنید ممنون میشم.

PC2st
یک شنبه 04 شهریور 1386, 16:48 عصر
میخوام خارج از timer1.tick و در متدی دیگر چک کنم که آیا این رویداد رخ داده یا نه(آیا زمان تایمر تمتم شده یا نه).
تایمر که همینطوری پشت سر هم اجرا میشه و اجرای تایمر تمام نمیشه مگر اینکه خاصیت timer.Enabled برابر false باشه. پس اگر میخوای ببینی که تایمر تمام شده یا نه، خاصیت timer1.Enabled رو مورد بررسی قرار بدید.

اگر میخوای بعد از هر بار اجرای timer، کارهای دیگری هم انجام بشه، میتونی یک متد بسازی و اون متد رو به لیست بقیه متدهایی اضافه کنی که در هر Tick اون متد اجرا بشه، مثلا:


timer1.Tick += new EventHandler(MyMethod);


MyMethod بصورت زیر تعریف شده:


void MyMethod(object sender, EventArgs e)
{
//...
}

هر دستوری در متد بالا بنویسید، اونها هم اجرا میشوند.

reza_N
یک شنبه 04 شهریور 1386, 20:43 عصر
این کد را امتحان کردم کار کرد اما مشکل من را حل نکرد

hdv212
یک شنبه 04 شهریور 1386, 20:57 عصر
میخوام خارج از timer1.tick و در متدی دیگر چک کنم که آیا این رویداد رخ داده یا نه(آیا زمان تایمر تمتم شده یا نه). البته از یک متغییر bool استفاده کردم که جواب نداد اگه رهنمایی کنید ممنون میشم.
برای مشکلی که بیان کردید، راه حل خودت یعنی همون متغیر bool بهترین جوابه، احتمالا شما در کد نویسی دچار اشتباه شدید اشتباها در جایی متغیر رو مقدار دهی کردید که مشکل ایجاد کرده، لطفا هدفتون رو دقیقا بیان کنید، کدی رو هم که نوشتید، اینجا بذارید تا بررسی کنیم.

PC2st
یک شنبه 04 شهریور 1386, 20:59 عصر
متاسفانه دقیقا متوجه منظورت نشدم، اگر بتونی بیشتر توضیح بدی ممنون میشم.
hdv212 درست میگویند، برای اینکه از متغیر bool استفاده کرده بودی و جواب نداده بود، شاید بخاطر این بوده که متغیر bool رو داخل کلاس تعریف نکرده بودید، مثلا:


public partial class Form1 : Form
{
bool isWork;

//...

private void timer1_Tick(object sender, EventArgs e)
{
this.isWork = true;
}
}

reza_N
دوشنبه 05 شهریور 1386, 10:13 صبح
من از راه حل بالا استفاده کردم اما مشکل انجاست که با هر بار اجرای کار سرعت تایمر از دفعه قبل بیشتر میشه تا جایی که بعد 4 یا 5 بار عملا انگار تایمری وجود نداره.

sm_ezadpanah
دوشنبه 05 شهریور 1386, 15:02 عصر
با هر بار اجرای کار سرعت تایمر از دفعه قبل بیشتر میشه تا جایی که بعد 4 یا 5 بار عملا انگار تایمری وجود نداره.آیا خاصیت interval رو دستکاری میکنید ؟