gpt4 book ai didi

c# - 任务的执行在 C# 中使用 Task.WaitAll 挂起

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:37 27 4
gpt4 key购买 nike

我有一个像下面这样的课

public class ImageUploader
{
....

public Task<string> Upload()
{
return new Task<string>(
() =>
{
....

return UploadedFilePath;
}
);
}
....
}

然后我像这样使用它
var uploadIcon = new ImageUploader();
var uploadLogo = new ImageUploader();

var uploadIconTask = uploadIcon.Upload();
var uploadLogoTask = uploadLogo.Upload();

Task.WaitAll(uploadIconTask, uploadLogoTask); // never returns

和 Task.WaitAll 永远挂起!

问题是什么?!

最佳答案

它挂起是因为您从未启动过任务。所以WaitAll正在等待他们完成,他们永远不会完成,因为他们从未开始。

如果您查看 Task.WaitAll 的文档你会看到 StartNew()用于创建的任务 - 这既创建又启动任务。

关于c# - 任务的执行在 C# 中使用 Task.WaitAll 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19342562/

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