Каков стандартный способ постоянно проверять соединение с SQL Server? - PullRequest
2 голосов
/ 20 января 2010

В приложении WPF я использую запросы LINQ to SQL внутри try - catch конструкций для обработки исключений, если что-то не так с подключением к серверу БД.

Проблема в том, что у меня есть несколько запросов, выполняемых по таймеру. Так что, если соединение не удается, у меня есть множество длинных запросов и пользовательский интерфейс зависает.

Какой стандартный выход? Я хотел бы иметь легкий и легкий способ постоянной проверки, если соединение с БД в порядке, а затем выполнить все эти вопросы со всеми моими запросами.

Ответы [ 2 ]

5 голосов
/ 20 января 2010

запустить его в потоке фонового рабочего или в отдельном потоке.

Работа не должна выполняться в потоке пользовательского интерфейса, если только она непосредственно не относится к самому пользовательскому интерфейсу. BackgroundWorker - это объект, который действительно упрощает работу с потоками. Обучающее руководство см. в этой записи . Он объясняет, что делает Фоновый работник и как его использовать.

Если вы работаете с потоком пользовательского интерфейса, вы отнимаете циклы ЦП от пользовательского интерфейса, в результате чего пользователь чувствует себя медленно. Выполнение работы в собственном потоке и , а затем обновление пользовательского интерфейса - лучший способ сделать это. Таким образом, пользователь может делать другие вещи, и пользовательский интерфейс отвечает правильно.

3 голосов
/ 20 января 2010

Почему бы не переместить запросы на опрос в их собственный поток, чтобы они не замораживали пользовательский интерфейс? Затем они могут подать сообщение или событие в ваш основной поток пользовательского интерфейса, и вы можете обработать его там (всплывающее сообщение об ошибке и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...