Es ist nicht notwendig, den Timer zu stoppen. Sie könnten den Timer die Callback-Methode fortsetzen lassen, aber Ihren nicht-reentranten Code in einem Monitor.TryEnter / Exit einbinden. In diesem Fall muss der Timer nicht gestoppt / neu gestartet werden. Überlappende Anrufe erhalten die Sperre nicht und kehren sofort zurück.
%Vor% Sie können System.Threading.Timer
deaktivieren, indem Sie das Intervall ändern. Sie können dies tun, indem Sie Folgendes aufrufen:
Sie müssen das Intervall zurückstellen, wenn Sie den Aufruf von myfunction
abgeschlossen haben, wenn Sie möchten, dass der Timer erneut feuert.