2016-04-11 25 views
-4

Bu arada, başka herhangi bir işlem yapmadan bir komutun yürütülmesini geciktirmek istiyorum.
Here's the programBir etkinliği nasıl geciktirebilirim?

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

olarak değil, metin olarak kodunu ekleyiniz tamamlamak için bu yöntem için beklemek olmaz Eğer Task.Delay kullanabilirsiniz, ancak async Task için yöntem imzası değiştirmeli yazdı image – Rob

+2

Thread.Sleep (2000) – benPearce

+0

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

cevap

1

İçinde async yöntemleri beklemek Task.Delay kullanabilirsiniz.

Sizin durumunuzda 2 saniye beklemek ve bundan sonra yürütmeye devam etmek için await Task.Delay(2000)'u ekleyebilirsiniz. @dotctor gibi

0

async void aksine aksi çağıran yöntemi

+0

Yanıtlarınız için teşekkür ederim, ben Task.Delay'i denedi ancak sorun o kadar hızlı ki döngüleri yürütmeye devam ediyor ve tüm etiketler aynı anda renklendiriliyor. –

+0

"async void parcours_anim" öğesini "async Task parcours_anim" olarak değiştirdiniz mi? – Itsik

İlgili konular