Ситуация следующая. Запускаю поток, в котором обращаюсь к БД, но поток с 1 раза не успевает получить информацию из БД . При повторных запусках потока информация приходит. Причем происходит такое только при общении к большим таблицам (1050 строк, 21 столбец). При обращении к маленькой таблице таких проблем не возникает.
Вопрос, как продлить время действия потока, если можно так выразиться?
Вероятнее всего я неправильно обращаюсь с потоками. Вот кусочек кода:
Синтаксис:
Используется csharp
public void GetMitishiLine1BusyThread(){
ThreadStart threadDelegate = new ThreadStart(GetMitishiLine1Busy);
Thread newThread = new Thread(threadDelegate);
newThread.Start();
}
//МЫТИЩИ ЛИНИЯ 1
public void GetMitishiLine1Busy() {
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
IDbCommand dbCommand = dbConnection.CreateCommand();
string getMitishiL1 ="SELECT COUNT(*) FROM mitishi WHERE busy=1 AND line=1";
Debug.Log("SQL: " + getMitishiL1);
dbCommand.CommandText = getMitishiL1;
IDataReader reader = dbCommand.ExecuteReader();
while(reader.Read()) {
busyMitishiL1 = reader.GetInt32(0);
}
reader.Close();
reader = null;
dbCommand.Dispose();
dbCommand = null;
dbConnection.Close();
}
ThreadStart threadDelegate = new ThreadStart(GetMitishiLine1Busy);
Thread newThread = new Thread(threadDelegate);
newThread.Start();
}
//МЫТИЩИ ЛИНИЯ 1
public void GetMitishiLine1Busy() {
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
IDbCommand dbCommand = dbConnection.CreateCommand();
string getMitishiL1 ="SELECT COUNT(*) FROM mitishi WHERE busy=1 AND line=1";
Debug.Log("SQL: " + getMitishiL1);
dbCommand.CommandText = getMitishiL1;
IDataReader reader = dbCommand.ExecuteReader();
while(reader.Read()) {
busyMitishiL1 = reader.GetInt32(0);
}
reader.Close();
reader = null;
dbCommand.Dispose();
dbCommand = null;
dbConnection.Close();
}