public void Close() { if (Connection != null) { StopConnectionTimeoutThread(); Marshal.FinalReleaseComObject(Connection); Connection = null; GC.Collect(); } }
public OperationResult<bool> Connect() { IsConnected = false; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { StartConnectionTimeoutThread(); string loginError = null; var result = GetConnection(GlobalSettingsHelper.GlobalSettings.FS_RemoteAddress, GlobalSettingsHelper.GlobalSettings.FS_Port, GlobalSettingsHelper.GlobalSettings.FS_Login, GlobalSettingsHelper.GlobalSettings.FS_Password); if (result.HasError && result.Error == "Пользователь или пароль неверны. Повторите ввод" || result.Error == "Удаленный доступ с этого компьютера запрещен") { loginError = result.Error; } Connection = result.Result; if (loginError != null) { return new OperationResult<bool>("Неверный логин драйвера Firesec: " + loginError); } StopConnectionTimeoutThread(); if (Connection != null) break; } if (Connection != null) break; SocketServerHelper.Restart(); } if (Connection == null) { LoadingErrorManager.Add("Ошибка при загрузке драйвера firesec"); return new OperationResult<bool>("Ошибка при загрузке драйвера firesec"); } IsConnected = true; SetLastEvent(); return new OperationResult<bool>() { Result = true }; }