Вы должны решить проблему того, почему требуется так много времени, чтобы установить соединение. Больше похоже на то, что вы хотите лечить симптомы , то есть то, что оно зависает в вашем приложении.
Как мне сделать это единственное соединение доступным для моей программы?
Это плохая практика. Соединения с базами данных должны оставаться открытыми в течение кратчайшего возможного периода времени. Получите соединение непосредственно перед тем, как вам понадобится его использовать, а затем закройте его, как только вы закончите. Поскольку вы используете C #, вы можете воспользоваться блоком using
, который управляет доступными ресурсами для вас:
using (var conn = new SqlConnection(connectionString)) {
try {
conn.Open();
// do things here...
}
catch (Exception) {
}
}
Даже если вы хотите сделать что-то вроде асинхронного открытия соединения, какой цели оно будет служить? У ваших пользователей будет более отзывчивый пользовательский интерфейс, но он не сможет ничего сделать в приложении, пока не будет установлено соединение.