Re: C# глобальная переменная в рамках потока
От: _FRED_ Черногория
Дата: 04.01.07 11:27
Оценка: 4 (1) +2
Здравствуйте, cipher, Вы писали:

C>Необходимо работать с базой данных из разных потоков. База данных MySql, подключаюсь через Connector.NET.Для каждого потока хочу создать своё подключение к базе данных (пишет в базу данных только один поток, остальные только читают), т.е. создаю объекты MySqlConnection для каждого потока. Обращение к базе данных идёт из разных функций, разных классов. Для этого я создал ряд статических функций. Для работы этих функций необходимо передавать соответствующие ссылки на объекты MySqlConnection. Передавать эти ссылки в качестве параметра неудобно из-за вложенности функций. Хотелось бы в рамках каждого потока в любом месте кода иметь доступ к объекту MySqlConnection данного потока, т.е. иметь глобальную переменную в рамках потока.

C>Как это сделать.

ThreadStaticAttribute:
  class ConnectionHolder
  {
    [ThreadStatic]
    private static IDbConnection connection;

    public static IDbConnection Connection {
      get {
        if(connection == null) {
          connection = …;
        }//if

        return connection;
      }
    }
  }
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.