【发布时间】:2020-09-24 16:12:53
【问题描述】:
我尝试使用 Task.Delay() 但是当程序到达那里时,无论如何它都会自行关闭。例如,在这种情况下,程序甚至无法到达Console.Write("*"); 行,它会关闭。我究竟做错了什么?有什么想法吗?
(示例代码)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Whatever
{
class Program
{
static async Task WriteAsync()
{
while (true)
{
await Task.Delay(1000);
Console.Write("*");
}
}
static void Main(string[] args)
{
WriteAsync();
}
}
}
【问题讨论】:
-
将其更改为
static async void Main(string[] args)并改用await WriteAsync();。 -
我不想使用
await WriteAsync();,因为它是一个无限循环,我希望它与其他异步方法同时运行。 -
然后写其他异步方法。如果
Main在事件循环中没有任何挂起的任务可以恢复执行,它将立即退出。
标签: c# asynchronous async-await