我有一段基本上看起来像这样的代码:
using(var ctx = new myDbContext())
{
var task1 = Task.Factory.StartNew(() => items = ctx.zsp_select_UserItems(UserId).ToList());
var task2 = Task.Factory.StartNew(() => result = ctx.zsp_select_Transactions(UserId, intoPast, LastUpdatedAt).ToList());
var taskList = new List<Task> { task1, task2 };
Task.WaitAll(taskList.ToArray());
}
基本上zsp_select_Transactions和zsp_select_UserItems是由我的项目中的ADO.NET Entity框架映射的存储过程。由于其中两个需要花费更长的时间来取回结果(由于抽出大量数据),我想知道同时触发这些,而不是等待第一个程序完成它&#39;执行然后触发第二个......
我对这段代码的问题在于它只能运行一次?第二次执行代码时出现以下错误:
The underlying provider failed to open
可能导致此问题的原因是什么?触发这两个程序并同时执行它们的最有效方法是什么,而不是等待第一个程序完成?
有人可以帮我解决这个问题吗?