PDA

View Full Version : واقعی نبودن زمان Interval در timer



m110_110
جمعه 11 دی 1388, 16:35 عصر
با سلام
من یک برنامه دارم می نویسم که به دقت timer بستگی زیادی دارد
در طول برنامه Interval آن هر چند لحظه باید تغییر کند (طبق پارامترهایی)
اما در حین کار متوجه مشکلی شدم و اون اینکه Interval که به اون می دم دقیقا اون رو اجرا نمی کنه و مثلا اگه بهش 5 میلی ثانیه بدم دقیقا هر 5 میلی ثانیه اجرا نمیشه و کمی عقب میمونه که واقعا دردسر ساز شده
می خواستم خواهش کنم که اگر کسی می دونه چطور میشه زمانی که به آن می دهیم را ملفکش کنیم دقیق اجرا کنه و یا یک جایگزین بهتری سراغ داره به ما هم بگوید
ممنون
این همه تکه کدی که به ان زمان می دهم(به عنوان مثال)


dTimer2.Interval = TimeSpan.FromSeconds(0.05);

ax.dbyte
شنبه 19 دی 1388, 18:05 عصر
سریع ترین Timer هایی که تو Wpf میتونی استفاده کنی System.Threading.DispatcherTimer چون Single Thread عمل میکنه یعنی تنها برای Thread تولید شده البته من شخصا این یکی رو بیشتر دوست دارم
System.Threading.Timer برای ساده ترین استفادش به این شکل کار کن :

public Window1()
{
//You probably are using
System.Timers.Timer myTimer0;
//Quicker
System.Windows.Threading.DispatcherTimer frameTimer;
// ...
System.Threading.Timer mytimer = new System.Threading.Timer(Tick, "tick...", 5000, 1000);
InitializeComponent();
}
static void Tick(object data)
{
// This runs on a pooled thread
// add ur Code here
}


گرچه بعید میدونم داخل Windows بتونی Timer با سرعت دلخواهو پیدا کنی