C#异步递归函数不能正常工作? [复制]

Posted

技术标签:

【中文标题】C#异步递归函数不能正常工作? [复制]【英文标题】:C# Async recursive function not working properly? [duplicate] 【发布时间】:2020-12-15 10:10:16 【问题描述】:

这是我的代码:

  class Program

    static void Main(string[] args)
    
        update();
    

    static async void update()
    
        await Task.Delay(100);
        Console.WriteLine("X");
        update();
    

控制台从不输出任何文本,我也不知道为什么。我做错了什么?

【问题讨论】:

这能回答你的问题吗? async/await - when to return a Task vs void? Avoid async void。请改用async Task 【参考方案1】:

您的Main 方法不是async,因此它不会等待您的update 方法。此外,您的update 方法应该返回一个Task,以便您的Main 方法可以等待它。

static async Task Main(string[] args)

    await update();


static async Task update()

    await Task.Delay(100);
    Console.WriteLine("X");
    await update();

【讨论】:

@Selvin 谢谢我会更新答案

以上是关于C#异步递归函数不能正常工作? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从递归函数修改全局变量不能按预期工作

将递归异步函数转换为 Promise

JavaScript中的递归异步函数

如何在 C# 中启动一个与非异步函数异步的函数? [复制]

Python以递归方式返回n个列表的出现,无需切片/深度复制或内置函数

带有异步请求的递归函数