Wie passe ich einen Threading.timer um eine Funktion abzuschließen [duplizieren]

7

Ich habe ein Threading.Timer in meiner Klasse.

%Vor%

und einen Rückruf dafür definiert haben.

%Vor%

Wenn Sie es ausführen, führen Sie den Callback erneut aus, bevor myfunction abgeschlossen wird.

Wie pausiert man Threading.Timer um myfunction zu beenden?

    
ar.gorgin 07.11.2012, 09:36
quelle

2 Antworten

14

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%     
Ivan Leonenko 07.11.2012, 09:56
quelle
6

Sie können System.Threading.Timer deaktivieren, indem Sie das Intervall ändern. Sie können dies tun, indem Sie Folgendes aufrufen:

%Vor%

Sie müssen das Intervall zurückstellen, wenn Sie den Aufruf von myfunction abgeschlossen haben, wenn Sie möchten, dass der Timer erneut feuert.

    
quelle

Tags und Links