Giriş
Bu timer background işler için tercih edilir.
Constructor - Lambda
4 parametre alır. İlk parametre callback, ikincisi callback'e geçilecek nesne, üçüncüsü geciktirme (delay) süresi, dördüncüsü ise aralık (interval) süresi. Interval süresi Timeout.Infinite verilebilir.
Örnek
Periyodik timer için şöyle yaparız.
Singleshot timer için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Timer içinde GUI'ye erişmek
Bu sınıf arka plandaki işler için tercih edilse bile GUI'ye erişmek için kullanılabilir. Şöyle yaparız.
Bu timer background işler için tercih edilir.
Constructor - Lambda
4 parametre alır. İlk parametre callback, ikincisi callback'e geçilecek nesne, üçüncüsü geciktirme (delay) süresi, dördüncüsü ise aralık (interval) süresi. Interval süresi Timeout.Infinite verilebilir.
Örnek
Periyodik timer için şöyle yaparız.
var timer = new Timer(s => { ... },null, 1000, 1000);
ÖrnekSingleshot timer için şöyle yaparız.
var timeMS = 1000;
var timer = new Timer(_ => Console.WriteLine("Peekaboo"), null, timeMS, Timeout.Infinite);
Console.ReadKey();
Constructor - TimerCallbackŞöyle yaparız.
public void MyCallback (object obj)
{
int x = (int)obj;
...
}
TimerCallback callback = new TimerCallback (MyCallback);
int num = 0;
Timer timer = new Timer (callback, num, 0, 2000);//4-th number is interval in ms
Şöyle yaparız.public void MyCallback(object o) { ... }
int timeToStart = 1000;
int period = 2000;
//fire the delegate after 1 second, and every 2 seconds from then on
Timer timer = new Timer(MyCallback, null, timeToStart, period);
Change metoduŞöyle yaparız.
//pause
timer.Change (Timeout.Infinite, Timeout.Infinite);
Şöyle yaparız.int timeToStart = 1000;
int period = 2000;
//resume
timer.Change (timeToStart, period);
Diğer NotlarTimer içinde GUI'ye erişmek
Bu sınıf arka plandaki işler için tercih edilse bile GUI'ye erişmek için kullanılabilir. Şöyle yaparız.
var context = SynchronizationContext.Current;
var tm = new System.Threading.Timer(state =>
{
context.Send(delegate() { statusDateTimeLabel.Text = ... });
}, null, TimeSpan.FromMilliseconds(0), TimeSpan.FromMilliseconds(1000));
Hiç yorum yok:
Yorum Gönder