Контекст службы Windows, такой как веб-сайт HttpContext - PullRequest
0 голосов
/ 25 февраля 2012

В настоящее время я работаю над службой Windows, которая выполняет вызов базы данных и выполняет некоторую работу, а затем ждет несколько секунд для повторного запуска.Я должен подключиться к базе данных во время работы, и я хотел бы сохранить соединение с базой данных где-то, что я знаю, будет очищен, когда объект будет завершен.

Я думал о том, чтобы использовать что-то вроде HttpContext, но, очевидно, службы Windows не имеют ничего подобного.Каков наилучший способ убедиться, что мои подключения располагаются правильно после каждого вызова?

1 Ответ

0 голосов
/ 25 февраля 2012

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

public class ServiceContext
{
    public static DbConnection Connection {get; set;}
}

Однако это не очень хорошая практика .Кажется, вам нужно:

  1. Инкапсулировать операцию в классе.Это запустится, а затем закроет соединение.
  2. Используйте Async-парадигму для запуска операции.Вы будете следить за тем, чтобы не вызывать ошибок в основных операциях службы во время вызова базы данных.

Лучше всего использовать TPL: Task<T>.

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