2016-05-18 11 views
2

Ich muss einen Timer starten und prüfen, ob die Zeit abgelaufen ist. Zum Beispiel gebe ich zu Beginn meiner Funktion 30 Sekunden, dann mache ein paar Sachen und warte dann, bis die 30 Sekunden verstrichen sind, um weiterzumachen.das beste Werkzeug für den Countdown?

Ich könnte eine Timer verwenden, die wie eine Bazooka aussieht (das Objekt bietet viel zu viele Möglichkeiten für das, was ich brauche) für die aktuelle Situation. Ich könnte auch eine Stopwatch nehmen und überprüfen, wenn es mehr als 30 Sekunden ist.

Allerdings wäre das perfekte Werkzeug, wenn es existiert, eher eine Kombination von beiden: eine Variable zu haben, auf die ich 30 Sekunden setze, und dann wäre eine Eigenschaft wahr/falsch, wenn sie beendet ist.

Ich weiß, dass die oben genannten Tools funktioniert, aber aus dem Grund, fragte ich mich, ob es besser ist?

+0

'Timer' ist völlig in Ordnung. – arrowd

Antwort

13
  • Um zu sagen, wie lange etwas dauerte, verwenden Sie Stopwatch.
  • Um ein Ereignis auszulösen, wenn einige Zeit verstrichen ist, verwenden Sie Timer.
  • Um eine Verzögerung in einem asynchronen Workflow einzuführen, haben await Task.Delay(x)

Die Werkzeuge für Sie zur Verfügung gestellt worden, verwenden; Wählen Sie den aus, der zu Ihrem Job passt.

1

Eine entsprechende Timer (es gibt zwei in .NET BCL, sorgfältig auswählen) ist in Ordnung. Wenn Sie abenteuerlustig sind, probieren Sie ThreadPool.RegisterWaitForSingleObject.

+0

Ich denke, das würde eine Verbesserung verdienen, wenn es kurz auf die Unterschiede zwischen den beiden Timern eingehen würde, und auch erwähnt, warum Sie ThreadPool.RegisterWaitForSingleObject über Timer verwenden möchten. –

+0

danke. Aber für die Eigenschaften gibt es einen zu sehen, wenn es 0 erreicht? –

Verwandte Themen