在using循环中使用OracleCommand时无法访问已处置的对象。通过Task.Run()多次调用异步方法

时间:2018-12-11 11:35:28

标签: c# task-parallel-library

这是我的异步方法,通过Task.Run()被称为1000000次,并在以后检查每个任务状态:

private static async Task ExecuteOracleCommandAsync(DataTable schemaTable, OracleConnection oraConn, string insertString, object[][] obj, OracleParameter[] param)
        {
            using (OracleCommand cmd = oraConn.CreateCommand())
            {
                cmd.CommandText = string.Concat(insertString, ")");
                cmd.ArrayBindCount = obj[0].Length;

                for (int i = 0; i < schemaTable.Rows.Count; i++)
                {
                    cmd.Parameters.Add(param[i]);
                }

                await cmd.ExecuteNonQueryAsync();
            }
        }

我得到了错误:

  

C#TPL问题:在使用循环中使用OracleCommand时无法访问已处置的对象

0 个答案:

没有答案