WinForm应用程序中的后台进程(定期“服务”)

时间:2010-01-18 17:20:34

标签: .net winforms multithreading backgroundworker

在WinForm项目中设置每10分钟运行一次的后台进程的最佳做法是什么?是否使用表单背景工作者?或者是否有更通用的方法适用于更多项目样式?

也许我应该在行之前调用一些代码:

 Application.Run(new Form1());

2 个答案:

答案 0 :(得分:2)

通常,如果您希望Windows窗体应用程序定期运行某些代码,则在其中一个窗体上使用Windows.Forms.Timer是处理通知的适当方法。

但是,正如您似乎已经意识到的那样,这将要求您创建并运行表单,并将您绑定到Windows窗体基础结构。

另一种替代方法是使用System.Threading.Timer类,它会在后台线程上通知您。但是,如果您使用此方法,如果您希望“进程”与用户界面交互,则需要使用某种形式的同步。如果需要,最佳平台中立方法(适用于Windows Forms + WPF)将使用SyncrhonizationContext编组回UI线程。

答案 1 :(得分:1)

您可以使用任务计划程序来安排应用程序。

如果您想在应用程序中安装计时器,可以使用计时器或使用Quartz.NET

等库。