PDA

View Full Version : اجرای یه تابع تو بازه های زمانی. مثلا هر 1 دقیقه



oldboy
شنبه 12 تیر 1389, 23:17 عصر
سلام دوستان.
چه طور میشه یه تابع رو تو بازه های زمانی مشخص اجرا کرد؟ مثلا هر 1 دقیقه یه بار.

mmd2009
شنبه 12 تیر 1389, 23:25 عصر
با سلام

تو یه تایمر میشه این کارو کرد ؟!!!

oldboy
شنبه 12 تیر 1389, 23:35 عصر
میشه یه توضیح مختصر از روش استفاده بدین؟
یه کد کوچولو.:خجالت:

r00tkit
شنبه 12 تیر 1389, 23:48 عصر
System.Timers.Timer t = new System.Timers.Timer();
t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed);

t.Start();
t.Interval = 10;

static void t_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Console.WriteLine("hi");
}



google is your friend

mmd2009
شنبه 12 تیر 1389, 23:55 عصر
بیا دوست عزیز

تو این برنامه هر 10 ثانیه یک بار مقداری که برای متد میفرستیم 10 است رو میاد از وردوی میگیره و ضربه در 10 میکنه و با یه پیغام نمایش میده

امیدوارم به دردت بخوره

babakpersia
دوشنبه 23 اسفند 1389, 12:38 عصر
آقای mmd 2009 ، ممنون

omidgold
یک شنبه 04 اردیبهشت 1390, 18:47 عصر
سلام
میخواستم در پروژه از چندین تایمر استفاده کنم . اما تعداد این تایمر ها متغیر یعنی شاید یک بار 1 عدد باشه و شاید یک بار تا 100 هم برسه
حالا خواستم راهنمایی کنید که چطور با کد نویسی این تایمر ها را در برنامه اجرا کنم ؟
و چطور تایمشون رو تمدید کنم؟
کسی میتونه کمک کنه؟:متفکر:
در اصل میخوام هر اسم رو واسه 2 دقیقه تو لیست باکس نگهدارم و وقتی که 2 دقیقه تموم شد اونهارو پاک کنم. و اگه اون اسم دوباره خواست تو لیست باکس ادد بشه تایمش تمدید بشه و دوباره 2 دقیقه تایمش از نو شروع بشه

majidrezaei2007
یک شنبه 04 اردیبهشت 1390, 20:54 عصر
خب چه نیازیه به استفاده از چند timer ؟
شما با یک timer هم می تونید اینکارو انجام بدین
با استفاده از یک متغیر که حالات رو چک کنه
ولی بازم می تونید timer رو زمان اجرا بسازید
از کلاس Timer یک آرایه بگیرید و ...

مرتضی تقدمی
یک شنبه 04 اردیبهشت 1390, 21:14 عصر
سلام

اگه خواستید زمان اجرای تایمر رو در هنگام اجرای برنامه تغییر بدید می تونید interval مربوط به تایمر رو مقداردهی کنید. اگه اشتباه نکنم منظور دوستمون این بود.

فکر کنم تایمر بیشتر از 60 ثانیه رو قبول نکنه. زیاد خاطرم نیست. اینجا هم استادیو ندارم که مطمئن شم. اگه اینجور باشه برای اجرا در زمان های بیشتر از 60 ثانیه باید از چند تا تایمر استفاده کنید.

موفق باشید

omidgold
دوشنبه 05 اردیبهشت 1390, 17:08 عصر
این هم راه حل:





Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Control.CheckForIllegalCrossThreadCalls = False

ListBox1.Items.Insert(ListBox1.Items.Count, "a")

Dim t As New System.Threading.Timer(AddressOf TimerProc)

t.Change(4000, 0)

End Sub

Private Sub TimerProc(ByVal state As Object)

Dim t As System.Threading.Timer = CType(state, System.Threading.Timer)

t.Dispose()

ListBox2.Items.Add(ListBox1.Items(0).ToString)

ListBox1.Items.RemoveAt(0)

End Sub

Farshid007
دوشنبه 05 اردیبهشت 1390, 22:36 عصر
این هم راه حل:





Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Control.CheckForIllegalCrossThreadCalls = False

ListBox1.Items.Insert(ListBox1.Items.Count, "a")

Dim t As New System.Threading.Timer(AddressOf TimerProc)

t.Change(4000, 0)

End Sub

Private Sub TimerProc(ByVal state As Object)

Dim t As System.Threading.Timer = CType(state, System.Threading.Timer)

t.Dispose()

ListBox2.Items.Add(ListBox1.Items(0).ToString)

ListBox1.Items.RemoveAt(0)

End Sub

این کد ها با سی شارپ هستند یا با وی بی
چرا موضوع رو می پیچونید
از ابزار .نت تایمرو رو انتخاب کنید و ویژگی Enabledرو Trueبزاریدو هر چی می خواهید تو Timer1_Tickبنویسید