我正在尝试使用Task.WhenAll执行多个SqlDataReaders.但是等待任务的时候,我得到了
"System.InvalidOperationException:无效操作.连接已关闭".
创建任务:
List<Task<SqlDataReader>> _listTasksDataReader = new List<Task<SqlDataReader>>();
_listTasksDataReader.Add(GetSqlDataReader1(10));
_listTasksDataReader.Add(GetSqlDataReader2(10));
SqlDataReader[] _dataReaders = await Task.WhenAll(_listTasksDataReader);
Run Code Online (Sandbox Code Playgroud)
我的"SqlDataReader"方法:
public Task<SqlDataReader> GetSqlDataReader1(int recordCount)
{
using (var sqlCon = new SqlConnection(ConnectionString))
{
sqlCon.Open();
using (var command = new SqlCommand("sp_GetData", sqlCon))
{
command.Parameters.Clear();
command.Parameters.Add(new SqlParameter("@recordCount", recordCount));
command.CommandType = System.Data.CommandType.StoredProcedure;
return command.ExecuteReaderAsync();
}
}
}
Run Code Online (Sandbox Code Playgroud)
执行Task.WhenAll时我不应该打开数据库连接,还是我错过了什么?