С чего начать таймер для опроса базы данных? - PullRequest
0 голосов
/ 23 февраля 2010

Я пытаюсь понять общий поток приложения WPF, мне не все ясно, поэтому, пожалуйста, помогите мне понять следующее:

Если я хочу, чтобы таймер опроса базы данных в приложении WPF был запущен не из файла кода моего главного окна, а из другого отдельного класса, как мне это реализовать?

Должен ли этот класс быть каким-либо образом связан с кодом главного окна позади класса? Какие процессы (кроме действий пользователя) могут создавать экземпляр этого отдельного класса, а что (кроме действий пользователя) может вызывать метод, запускающий таймер?

Вместо этого Таймера может быть любой Метод, важно понимать общий архитектурный принцип потока приложения и структуры объектов класса.

Ответы [ 2 ]

1 голос
/ 24 февраля 2010

В ответ на ваш комментарий:

Я бы использовал BackgroundWorker для выполнения метода опроса базы данных в фоновом режиме. Затем вы можете отключить этот метод с помощью таймера или элемента управления в пользовательском интерфейсе, не беспокоясь о том, что вы неправильно касаетесь потока пользовательского интерфейса. Если вы инкапсулируете это в классе, вы можете привязать команду к методу, который ее запускает, и полностью покончить с выделением кода.

1 голос
/ 23 февраля 2010

Приложения WPF по умолчанию имеют класс App, который вызывается первым. Если вы не хотите подключать свой таймер к главному окну (в чем причина?), Вы можете запустить его в обработчике событий Startup приложения.

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        // Instantiate your class and start the timer
    }
}

и в файле App.xaml:

<Application ... Startup="Application_Startup">...</Application>
...