Wie trigge ich eine Methode nach x Sekunden aus?

8

Ich arbeite an einer C # Windows Forms-Anwendung, wo ich die Methode für 30 Sekunden pausieren muss, bis es zur nächsten Codezeile weitergeht. Ich habe versucht, Thread.Sleep() , die für diese Anwendung nicht geeignet war und ich habe verstanden, dass ich stattdessen eine Art Timer verwenden sollte. Ich habe viel gesucht, aber ich kann nicht herausfinden, wie Timer zu implementieren sind.

Mein Code ist unten und könnte mir jemand zeigen, wie ich den Timer implementieren soll. Ich habe einen Kommentar dazu abgegeben, wo die Methode angehalten werden soll.

%Vor%     
user1881847 06.12.2012, 09:33
quelle

4 Antworten

22

Wenn Ihre App eine .Net 4.5-Anwendung ist, ist es etwas einfacher, Task zu verwenden:

%Vor%     
Kamyar Nazeri 06.12.2012 09:45
quelle
10

Task.Delay ist in .NET 4.0 nicht verfügbar, aber Sie können die Task starten, die nur für 30 Sekunden inaktiv ist. Später können Sie den UI-Thread erneut fortsetzen:

%Vor%     
Sergey Berezovskiy 06.12.2012 09:43
quelle
4

Definieren Sie auf Klassenebene eine Instanz von Timer (Es gibt ein paar Klassen wie diese - für eine Winforms-App sollten Sie System.Windows.Forms.Timer verwenden)

%Vor%

Fügen Sie dann in Ihrer Methode Zeilen hinzu, um das Häkchen zu bearbeiten und starten Sie es:

%Vor%     
Jamiec 06.12.2012 09:42
quelle
3

Es würde auch einen Weg mit reaktiven Erweiterungen geben:

%Vor%     
LaurinSt 06.12.2012 09:51
quelle

Tags und Links