Em C #, onde devo manter a referência do meu timer?
A documentação deSystem.Threading.Timer
diz que devo manter uma referência ao vivo para evitar que seja coletada no lixo. Mas onde devo fazer isso? Minhasmain
é muito simples que eu não sei onde guardar a referência:
class Program {
static void Main() {
new System.Threading.Thread(myThreadStart).Start();
new System.Threading.Timer(myTimerCallback, new MyStateObject(), 0, 5000);
}
}
Pensei em manter a referência em umstatic
campo noProgram
classe, assumindo questatic
os campos não são coletados até o final do aplicativo. Mas não tenho certeza se essa é a melhor maneira de fazê-lo, por isso gostaria de receber seus conselhos.