2016-04-11 4 views
-4

Ich möchte die Ausführung eines Befehls verzögern, ohne einen anderen auszuführen.
Here's the programWie kann ich eine Veranstaltung verzögern?

public async void parcours_anim(Queue<int> f, noeud[] Arb_b, LabelExpression[] Lbls_A) 
{ 
    int val = 0; 
    while (f.ToArray().Length != 0) 
    { 
     val = f.Dequeue(); 
     index = Recherche_index(val, Lbls_A); 
     //Stop here before executing this instruction for like 2seconds 
     Arbre[index].Fill = Brushes.Blue; 
     // and then continue 
    } 
} 
+4

Bitte Code als Text hinzufügen, nicht als ein Bild – Rob

+2

Thread.Sleep (2000) – benPearce

+0

https://msdn.microsoft.com/en-us/library/system.threading.thread.sleep(v=vs.110).aspx –

Antwort

1

können Sie Task.Delay verwenden, um innerhalb async Methoden zu warten.

In Ihrem Fall können Sie await Task.Delay(2000) hinzufügen, um 2 Sekunden zu warten und danach die Ausführung fortzusetzen.

0

Wie @dotctor schrieb man Task.Delay verwenden könnte, aber Sie müssen die Methode Signatur async Task verändern im Gegensatz zu async void sonst die anrufende Methode nicht für diese Methode warten würde abzuschließen

+0

Vielen Dank für Ihre Antworten, ich versuchte das Task.Delay, aber das Problem ist, dass es so schnell ist, dass es die Schleife ausführt und dann alle Etiketten gleichzeitig gefärbt sind. –

+0

Haben Sie 'async void parcours_anim' in' async Task parcours_anim' geändert? – Itsik