2016-04-11 8 views
-4

私はその間に他のものを実行することなく命令の実行を延期したいと思います。
Here's the programイベントを遅らせるにはどうすればいいですか?

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

がないよう、テキストとしてあなたのコードを追加してください完了するには、このメソッドを待たないだろうあなたがTask.Delayを使用することができますが、async Taskにメソッドのシグネチャを変更する必要があります書きました画像 – Rob

+2

Thread.Sleep(2000) – benPearce

+0

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

答えて

1

あなたは内部asyncメソッドを待たなければTask.Delayを使用することができます。

場合によっては、await Task.Delay(2000)を追加して2秒待ってから実行を続行することができます。 @dotctor同様

0

async voidとは対照的に、そうでない場合は、呼び出し元のメソッドが

+0

ありがとうございました。 Task.Delayを試しましたが、問題は非常に速くループを実行し続け、すべてのラベルが同時に色付けされるということです。 –

+0

'async void parcours_anim'を' async Task parcours_anim'に変更しましたか? – Itsik

関連する問題