Mam problem ponieważ chcę utworzyć wątek, który będzie ciągle się wykonywał w określonym przeze mnie odstępie czasowym. Użyłem do tego klasy System.Threading.Timer, całość wygląda tak:
new System.Threading.Timer(
e =>
{
this.Dispatcher.Invoke((Action)(() =>
{
//tutaj wykonuję moją metodę;
}));
},
null,
TimeSpan.Zero,
TimeSpan.FromMinutes(10));
Całość niestety wykonywała się tylko jeden raz (w określonym odstępie czasowym).
Doszukałem się informacji, że powodem tego jest GC, który zabija cały proces i najlepszym rozwiązaniem ma być utworzenie w klasie pola System.Threading.Timer, pod który będę przypisywał utworzony obiekt. Tak też uczyniłem i tutaj zaczyna się mój problem. Jeśli powyższy kod umieszczę bezpośrednio w obrębie Main używanej klasy i tam dokonam przypisania program będzie wykonywał się poprawnie - moja metoda wykonuje się ciągle w ustalonym odstępie czasowym. Jeśli natomiast kod ten wyodrębnię do osobnej metody, w której będę przypisywał to samo pole System.Threading.Timer efekt jest taki sam jak na początku. To samo się dzieje jeśli moja metoda zwraca obiekt typu Timer i przypisuje go dopiero w Main.
Będę bardzo wdzięczny za każdą pomocną wskazówkę.