【问题标题】:How to use Task.Delay() in C#? [duplicate]如何在 C# 中使用 Task.Delay()? [复制]
【发布时间】:2020-03-30 23:27:25
【问题描述】:

我是 C# 新手,我想在我的代码中尝试 Task.Delay(),但我遇到了一些错误。

这是我的代码:

static public void Main(string[] args)
{
    Delay();
}

static async Task Delay()
{
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine(i);
        await Task.Delay(1000);
    }
}

这是我得到的错误:

在调用完成之前,不等待该语句,当前方法的执行将继续。考虑使用 'await' 运算符或调用 'Wait' 方法

它不会每秒打印每个数字,也许我做错了?

【问题讨论】:

    标签: c#


    【解决方案1】:

    编译器警告您正在调用async 方法,但您现在正在await 调用它,因此对返回的Task 执行任何操作。

    在调用Delay 时将Main 方法设为asyncawait

    static public async Task Main(string[] args)
    {
        await Delay();
    }
    
    static async Task Delay()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine(i);
            await Task.Delay(1000);
        }
    }
    

    【讨论】:

    • 谢谢,您的回答解决了我的问题。 :) 我完成了 Codecademy 的课程,但它没有教我如何使用 async/awaitTask,所以我不知道我的代码中发生了什么 XD。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 2011-08-30
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多