我有一个像下面这样的课程
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()用于创建的任务-这将创建并启动任务。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句