Ok, quindi sto usando System.Timers.Timer
in .Net 4 con C#.Come posso passare un oggetto in un evento del timer?
ho il mio oggetto timer in questo modo:
var timer = new Timer {Interval = 123};
ho il mio timer trascorso gestore di eventi puntato verso un metodo in questo modo:
timer.Elapsed += MyElapsedMethod;
E il mio metodo è simile al seguente:
static void MyElapsedMethod(object sender, ElapsedEventArgs e)
{
Console.WriteLine("Foo Bar");
}
Voglio passare una stringa in questo metodo, come posso fare?
Grazie
In realtà stai ancora leggendo alcune variabili globali (sì, potrebbe essere locale, ma non ha senso). Appena sostituito gestore di eventi con funzione anonima. Questo 'timer.Elapsed + = (s, e) => Console.WriteLine (theString);' Ancora più corto, ma l'idea è la stessa. –
Pensavo che l'assegnazione di eventhandler in linea sia scoraggiata perché non possono essere rilasciati successivamente? –