Comment savez-vous que cela n'a pas fonctionné?
Dispose() devrait fonctionner. Pouvez-vous encore utiliser la minuterie après (vous ne devriez pas si cela fonctionne bien)?
Si vous souhaitez libérer la mémoire, vous devez appeler GC.Collect().
En outre, il est recommandé d'envelopper la minuterie dans une instruction à l'aide (si vous n'avez pas besoin de la minuterie ailleurs):
using (Timer t = new Timer())
{
// Do stuff with t
}
Timer.Dispose() sera appelée alors automatiquement.
Voici un exemple de disposer d'une minuterie:
static void TimerTest()
{
using (Timer t = new Timer(200))
{
t.Start();
t.Elapsed += new ElapsedEventHandler(t_Elapsed);
System.Threading.Thread.Sleep(5000); // Do some work here.
}
System.Threading.Thread.Sleep(5000); // Wait before closing the application
}
static void t_Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine("Hello.");
}
Appelez-le dans votre méthode Main(). Il imprimera "Bonjour". pendant 5 secondes, le temporisateur est éliminé et t_Elapsed ne sera plus appelé. Après 5 secondes supplémentaires, l'application se ferme.
Veuillez être plus précis. En quoi cela ne fonctionne-t-il pas? –