【问题标题】:How can I delay an event?如何延迟事件?
【发布时间】:2016-08-01 01:53:34
【问题描述】:

我想延迟执行一条指令,同时不执行任何其他指令。
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
    }
}

【问题讨论】:

标签: c# .net async-await delay


【解决方案1】:

您可以使用Task.Delayasync 方法中等待。

在您的情况下,您可以添加 await Task.Delay(2000) 以等待 2 秒,然后继续执行。

【讨论】:

    【解决方案2】:

    就像@dotctor 写的那样,您可以使用Task.Delay,但您必须将方法签名更改为async Task,而不是async void,否则调用方法不会等待此方法完成

    【讨论】:

    • 感谢您的回答,我尝试了 Task.Delay,但问题是它太快了,以至于它一直在执行循环,然后所有标签同时着色。
    • 你把async void parcours_anim改成async Task parcours_anim了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2011-01-17
    相关资源
    最近更新 更多