gpt4 book ai didi

c# - 同时运行任务.NET 4.5

转载 作者:行者123 更新时间:2023-11-30 13:30:41 27 4
gpt4 key购买 nike

为什么方法 AwakeTest 需要 3 秒而不是 1 秒

public static async void AwakeTest()
{
var Do1 = Sleep(1, 1);
var Do2 = Sleep(1, 2);
var Do3 = Sleep(1, 3);

await System.Threading.Tasks.Task.WhenAll(Do1, Do2, Do3);

Console.WriteLine(await Do1);
Console.WriteLine(await Do2);
Console.WriteLine(await Do3);
}

private static async System.Threading.Tasks.Task<int> Sleep(int Seconds, int ID)
{
if (Seconds < 0)
{
throw new Exception();
}
System.Threading.Thread.Sleep(Seconds * 1000);
return ID;
}

最佳答案

由于 Thread.Sleep 使线程休眠,并且每个 Task 不需要在单独的线程中运行,因此它会挂起整个线程。

您应该改用 Task.Delay:

await Task.Delay(Seconds * 1000);

关于c# - 同时运行任务.NET 4.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29647061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com