c# - 在 .net c# 中异步或并行地在数据库中保存记录

标签 c# .net asynchronous parallel-processing async-await

我有一项服务,在从 API 获取后,我必须将大量记录保存到数据库中。 同时,我必须将这些记录从服务返回给调用者。 但问题是我在数据库中保存记录需要很长时间,所以服务越来越慢。 我对此进行了搜索,发现了一些并行任务或异步和等待的概念。

我是这个概念的新手,对它的用法感到困惑

我调查过:

Running multiple C# Task Async http://msdn.microsoft.com/en-us/library/hh191443.aspx

但我不知道该怎么做。请帮助我:

下面是代码:

public List<SearchedItems> SearchItems(string ItemToSearch, string AuthenticationToken)
{
    var _list= getRecords from Api //100 records    

     //Task<int>.Factory.StartNew(() => _objBLLNutritionLog.FillNutritionTable(_tempList)); // also tried this

    saveToDb(_list); // need to run this asynchronously Or parallel (Taking long time)

    return _list;

}

我想将结果返回给调用者,另一方面想填充数据库。 请提出建议。

谢谢

最佳答案

我希望您使用的是 .NET 4.5。

那么让我们开始吧。首先用 async 标记你的 SearchItems 函数:

public async List<SearchedItems> SearchItems(string ItemToSearch, string AuthenticationToken)
{
}

然后您可以等待 saveToDb 任务:

var result = await Task.Factory.StartNew(()=> saveToDb(_list));

关于c# - 在 .net c# 中异步或并行地在数据库中保存记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20799666/

相关文章:

c# - MKCoordinateRegionForMapRect 在单点触控中不可用?

c# - 使用单个输入上传多个文件 Asp Mvc

.net - .net 的匹配器库

c# - 如何使用 lambda 表达式从嵌套集合中获取叶节点

c# - 如何将异步事件转发给父类?

c# - 使用 Entity Framework 将 SQL Server 数据库中的表拉入 C# 中的 List<>

c# - 在日志中包含时区

.net - 如何使用缩写的时区显示 DateTime?

python - 在 Django 中完成 celery 任务时更新 UI 的最佳方法是什么?

php - 由于 AJAX 请求,托管服务提供商阻止用户