小编Asu*_*sT9的帖子

全部任务,连接正在关闭

我正在尝试使用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时我不应该打开数据库连接,还是我错过了什么?

c# sqldatareader async-await

6
推荐指数
2
解决办法
1400
查看次数

标签 统计

async-await ×1

c# ×1

sqldatareader ×1