я использую mysql через devart dotconnect. Код выше является частью многопоточного класса.
public void DoQuery(ref Devart.Data.MySql.MySqlDataReader Dr, string QryStr)
{
lock (locker)
{
//Program.MyMutex.WaitOne();
Devart.Data.MySql.MySqlCommand Command = new Devart.Data.MySql.MySqlCommand();
int ThreadID = Convert.ToInt32(Thread.CurrentThread.Name);
MySqlConnection FCon = Program.Con[ThreadID];
if (FCon.State != System.Data.ConnectionState.Open) Program.Con[ThreadID] = Program.BuildDbConnection();
Command.Connection = FCon;
Command.CommandTimeout = 0;
Command.FetchAll = true;
Command.CommandText = QryStr;
if (Dr != null) Dr.Dispose();
if (QryStr.Substring(0, 6).Equals("select", StringComparison.CurrentCultureIgnoreCase) != true) Command.ExecuteNonQuery(); else Dr = Command.ExecuteReader(); this line randomly stuck on ExecuteReader.
Command.Dispose();
}
}