【发布时间】:2017-10-06 12:46:29
【问题描述】:
这两个简化的代码有什么区别,特别是 foreach 部分。
public async Task UploadFilesAsync(IEnumerable<UploadFile> uploads)
{
uploads.ToList().ForEach(async upload =>
{
await UploadFileAsync(upload);
});
}
public async Task UploadFilesAsync(IEnumerable<UploadFile> uploads)
{
foreach (upload in uploads)
{
await UploadFileAsync(upload);
}
}
我知道第一个本质上创建了一个 async void 操作,由于各种原因,这不是最好的解决方案,但第二个会做同样的事情,还是更被接受的做法?
【问题讨论】:
-
我已经阅读了几乎所有关于这个主题的 SO 问题,包括这两个问题,但我没有看到确切的答案,不管使用这种方法是对还是错
-
你的
ForEach()方法的结束)在哪里? -
@mameesh 好吧,链接的问题具体解释了两者的行为方式之间的区别,所以如果您阅读它,那么您确实知道两者之间的区别是什么.
标签: c# async-await task