.NET & Timer - Okresowe bądź jednorazowe wykonanie metody ze zdefiniowanym opóźnieniem
Kilka zdań na temat wykorzystania obiektu Timer do wykonania metody po pewnym czasie, w sposób jednorazowy bądź ciągły (okresowy, cykliczny).
Do czego służy obiekt Timer?
Obiekt Timer pochodzący z przestrzeni nazw System.Threading, stworzony został w celu wykonywania okresowo wskazanej metody w nowym wątku, przy czym mamy możliwość zdefiniowania początkowego opóźnienia przed pierwszym wykonaniem, oraz interwał kolejnych wywołań. Obiekt taki tworzymy jak poniżej:<akcja do wykonania>,
<obiekt przekazany do akcji jako argument (nullable)>,
<początkowe opóźnienie w milisekundach>,
<czas w ms między kolejnymi wywołaniami>);
To bardzo wygodny sposób na stworzenie wątku okresowo wykonującego pewne zadania.
A jak wykonać jednorazowo metodę po pewnym czasie?
Jak zauważyłem, jesto dość często stawiane pytanie. Wciąż zupełnie wygodnie będzie użyć do tego celu obiektu Timer, rzecz w tym, co należy zrobić aby wywołanie akcji, odbyło się tylko jeden raz. Z pomocą przychodzi dokumentacja, podług której, aby wyłączyć okresowe wykonywanie metody, jako czas między kolejnymi wywołaniami, należy podać wartość ujemną. Zatem mogłoby to wyglądać następująco:{
// Logika
}
// ...
// --------------------------------
// ...
TimerCallback timerCallback = this.JakasMetoda;
Timer timer = new Timer(
timerCallback,
null,
TimeSpan.FromMinutes(1),
-1);
W ten sposób metoda JakasMetoda wykona się jeden raz, po minucie opóźnienia.
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!