Multiple DataReader per connection
Posted: Fri 08 Dec 2017 16:27
Do I understand correctly that subj isn't support?
So can't create several DataReader in parallel and read from them?
It seems it doesn't.
But anyway currently in such a case NullReferenceException happens which is bad I believe.
Unhandled Exception: System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.) ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Devart.Data.PostgreSql.e.b(Boolean A_0)
So can't create several DataReader in parallel and read from them?
It seems it doesn't.
But anyway currently in such a case NullReferenceException happens which is bad I believe.
Code: Select all
var cmd1 = con.CreateCommand();
cmd1.CommandText = "select * from t1";
var cmd2 = con.CreateCommand();
cmd2.CommandText = "select * from t2";
DbCommand[] cmds = {cmd1, cmd2};
Console.WriteLine("Run parallel commands");
Parallel.ForEach(cmds, (cm) => {
var tag = cm.CommandText + ":" ;
Console.WriteLine(tag + "begin:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
using(var reader = cm.ExecuteReader())
{
Console.WriteLine(tag + "execute: " + System.Threading.Thread.CurrentThread.ManagedThreadId);
while(reader.Read())
{
Console.WriteLine(tag + "read");
Console.WriteLine(tag + reader[0]);
}
}
Console.WriteLine(tag + "done");
});
Console.WriteLine("done");
at Devart.Data.PostgreSql.e.b(Boolean A_0)