C#在异步操作仍处于挂起状态时完成异步模块或处理程序

时间:2015-10-14 17:30:47

标签: c# asynchronous

我刚开始学习TAP模式,我收到错误

[Conditional("CODE_ANALYSIS")]

我收到了这个错误:

An asynchronous module or handler completed while an asynchronous operation was still pending

以下是UpdateEbookDownloadLinkAsync方法的样子:

var r = await _purchaseService.UpdateEbookDownloadLinkAsync(resultOfAdding.Id, ebookUrls);

在我调用UpdateEbookDownloadLinkAsync之前,我有ForEach循环,以这段代码结束:

public async Task<bool> UpdateEbookDownloadLinkAsync(Guid purchaseId, List<string> urls)
    {
        using (var database = new DatabaseContext())
        {
            var item = await database.PurchasedItems.FindAsync(purchaseId);

            if (item == null) 
            {
                return false;
            }

            var stringBuilder = new StringBuilder();

            foreach (var url in urls)
            {
                stringBuilder.Append(url).Append(';');
            }

            item.EbookDownloadLink = stringBuilder.ToString();
            database.PurchasedItems.AddOrUpdate(item);

            var i = await database.SaveChangesAsync();
            return true;

        }

你能帮我解决这个问题吗?

0 个答案:

没有答案