PDA

View Full Version : سوال: تو Wpf چه جوری از تایمر استفاده کنم ؟



Blackk_lightt
یک شنبه 02 تیر 1387, 17:37 عصر
سلام.
من میخوام یه کاری هر چند ثانیه یه بار انجام بشه
ولی wpf تایمر نداره.
چی کار کنم ؟:متفکر:

Zaparo
یک شنبه 02 تیر 1387, 18:33 عصر
System.Windows.Threading.DispatcherTimer timer1 = new System.Windows.Threading.DispatcherTimer();
timer1.Interval = new TimeSpan(0, 0, 1);
timer1.IsEnabled = true;
timer1.Tick += delegate(object sender, EventArgs e)
{
positonslider.Value = media1.Position.TotalMilliseconds;
if (positonslider.Value == positonslider.Maximum)
{
if (medialist1.SelectedIndex > (medialist1.Items.Count - 2))
medialist1.SelectedIndex = 0;
else
medialist1.SelectedIndex++;
}
};

Mahdi.Kiani
یک شنبه 02 تیر 1387, 18:41 عصر
سلام.
من میخوام یه کاری هر چند ثانیه یه بار انجام بشه
ولی wpf تایمر نداره.
چی کار کنم ؟:متفکر:

از کلاس DispatcherTimer :



System.Windows.Threading.DispatcherTimer



بقیه موارد مانند حالت قبل می باشد. فقط در مورد Interval بایستی مقداری از نوع TimeSpan بهش بدین




timer1.Interval = new TimeSpan(0, 0, 1);



که البته به جای کد فوق بهتره از کد زیر استفاده بشه چون خوانایی اون خیلی بالا تره


timer.Interval = TimeSpan.FromSeconds(1);



اینجا دقیقا مشخصه که مقدار Interval برابر با 1 ثانیه می باشد.
موفق باشید

Blackk_lightt
یک شنبه 02 تیر 1387, 19:49 عصر
سلام.
من این کد رو نوشتم :


System.Windows.Threading.DispatcherTimer timer1 = new System.Windows.Threading.DispatcherTimer();
timer1.Interval = new TimeSpan(0, 0, 1);
timer1.IsEnabled = true;
timer1.Tick += new EventHandler(timer1_Tick);

کار هم میکنه.
فقط اگه بخوام timer1 رو یه جای دیگه از کار بندازمش نمیشه :متفکر::ناراحت:

Zaparo
دوشنبه 03 تیر 1387, 10:56 صبح
با متد Stop در timer1_tick ت یه شرط بزار اگه درست بود Stop بشه یکم مطالعه در مورد کدهایی که مینویسند بد نیست ;)