c# - 使同步数据库操作异步
问题描述
我想在 Asp.Net MVC 4.5.2 应用程序中使用批量数据库操作。有很好的 lib Z.EntityFramework.Extensions
,但要 800 美元。和免费的 lib EF.BulkExtensions
,但它不包含异步方法。问题:如果我会做这个把戏
await Task.Run(() =>
{
MyDatabaseContext.BulkUpdate(entities);
});
它会像我使用异步方法一样工作吗(就使用 IIS 的线程池而言)?
解决方案
您至少应该执行以下操作:
var task = new Task(() => { MyDatabaseContext.BulkUpdate(entities) }, TaskCreationOptions.LongRunning);
await task;
这可确保您的任务在其自己的线程中运行,并且不会占用任务池中的任务。
推荐阅读
- c - 字符数组值将打印为空,除非在分配时打印值 - C
- javascript - 使用提示符和 PHP 密码保护页面
- r - lmer 错误无法评估分组因子
- ms-access - 更新服务器名称连接访问 2013
- data-structures - 当我链接迭代器而不是收集到临时 HashSet 时,为什么会得到不一致的结果?
- internet-explorer - FFMpeg 从 avi 到 mp4 的转换对于 safari 和 IE 浏览器的视频不成功
- python - Datadog 如何在 Flask 应用程序上实现 ddtrace?
- azure - Azure 应用程序网关重定向
- python - 花旗数据下载
- powershell - 为什么在函数中的 return 语句之后打印 Write-Host 消息?