gpt4 book ai didi

c# - 等待一项任务而不等待其他任务是否可以?

转载 作者:行者123 更新时间:2023-11-30 17:47:28 25 4
gpt4 key购买 nike

我有以下服务方式,

public async Task<IList<ProductsImage>> InsertAsync(BaseProduct product, Dictionary<string, Stream> images)
{
try
{
if (images.Count > 0)
{
await _imageService.SaveAllAsync(images);
}
return await _repository.InsertAsync(product);
}
catch // Delete the files if there is an error from db
{
if (images.Count > 0)
{
var paths = images.Select(i => i.Key).ToList();
_imageService.DeleteAllAsync(paths);
}
throw;
}
}

问题是我不想在 _imageService.DeleteAllAsync 处等待,因为它需要一些时间才能完成,因此我无需等待即可转移我的执行。在 _imageService.DeleteAllAsync

中不使用 await 是否有任何危险

最佳答案

正确的方法是将此消息发送到消息队列,以便它可以由外部进程异步处理(无需等待)。通过这种方式,它还将保证 DeleteAllAsync 将在失败时被调用或重试。

这是我的 shameless plug对于我写的关于这个主题的文章。

关于c# - 等待一项任务而不等待其他任务是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24735218/

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