代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

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

  •  0
  • BuddyJoe  · 技术社区  · 15 年前

    在WinForm项目中设置每10分钟运行一次的后台进程的最佳实践是什么?是否要使用表单外的后台工作人员?还是有一种更通用的方法可以应用于更多的项目样式?

    也许我应该在电话前打个电话给你:

     Application.Run(new Form1());
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   Reed Copsey    15 年前

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

    然而,正如您似乎已经认识到的,这将要求您建立并运行一个表单,并将您与Windows表单基础结构绑定起来。

    另一种方法是使用 System.Threading.Timer 类,它在后台线程上通知您。但是,如果您使用这种方法,那么如果您希望“进程”与用户界面交互,则需要使用某种形式的同步。最好的平台中立方法(与Windows窗体+WPF一起使用)是使用 SyncrhonizationContext 如果需要,封送回UI线程。

        2
  •  1
  •   Giorgi    15 年前

    您可以使用任务调度程序来调度应用程序。

    如果要在应用程序中使用计时器,可以使用计时器或使用库,例如 Quartz.NET