从哪里开始数据库轮询的计时器?

时间:2010-02-23 18:08:55

标签: c# .net wpf class methods

我正在尝试了解WPF应用程序的一般流程,对我来说并非一切都清楚,所以,请帮助我理解以下内容:

如果我想要我的数据库轮询WPF应用程序中的Timer不是从我的主窗口的代码隐藏文件启动的,而是从另一个单独的类启动,我应该如何实现它?

这个类应该以某种方式与类后面的主窗口代码连接吗?哪些进程(用户操作除外)可以实例化这个单独的类,以及(用户操作的一部分)可以调用启动Timer的方法?

在这个Timer的位置可以是任何方法,重要的是要了解应用程序流和类对象结构的一般架构原理。

2 个答案:

答案 0 :(得分:1)

默认情况下,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>

答案 1 :(得分:1)

回应你的评论:

我使用BackgroundWorker在后​​台执行数据库轮询方法。然后,您可以使用计时器或UI中的控件关闭该方法,而不必担心您不恰当地触摸UI线程。如果将它封装在一个类中,则可以将命令绑定到启动它的方法,并完全取消代码隐藏。