public static RunOperationWithDlg ( ThreadStart function, int timeout, string text = "" ) : bool | ||
function | ThreadStart | |
timeout | int | |
text | string | |
return | bool |
public static void TryConnect() { logger.Info("Пытаемся восстановить соединение..."); bool timeout = WaitOperationDlg.RunOperationWithDlg(new ThreadStart(DoConnect), connectionDB.ConnectionTimeout, "Соединяемся с сервером MySQL." ); if (!WaitResultIsOk || timeout) { MessageDialog md = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.YesNo, "Соединение было разорвано. Повторить попытку подключения? В противном случае приложение завершит работу."); ResponseType result = (ResponseType)md.Run(); md.Destroy(); if (result == ResponseType.Yes) { TryConnect(); } else { Environment.Exit(1); } } }
public static void CheckConnectionAlive() { if (DBMS != DataProviders.MySQL) { return; } logger.Info("Проверяем соединение..."); bool timeout = WaitOperationDlg.RunOperationWithDlg(new ThreadStart(DoPing), connectionDB.ConnectionTimeout, "Идет проверка соединения с базой данных."); if (timeout && ConnectionDB.State == System.Data.ConnectionState.Open) { ConnectionDB.Close(); //На линуксе есть случаи когда состояние соедиения не корректное. } if (connectionDB.State != System.Data.ConnectionState.Open) { logger.Warn("Соединение с сервером разорвано, пробуем пересоединится..."); TryConnect(); } logger.Info("Ок."); }