我想在后台运行这个程序。pref C#

我想在后台运行这个程序。pref C#,c#,C#,我想在后台运行这个程序。pref C# 我想把图标放在托盘里。 在指定的时间同步文件夹(我知道如何同步文件夹)。 如何在后台运行并启动同步(例如在2AM)?您需要考虑使用.< /p>来运行“后台”< /p> 要启动同步,请使用计时器和 每分钟检查一次时间,如果时间匹配,则开始同步 或者立即计算时间间隔->TimeToStart,设置时间间隔,启动计时器,并在第一次滴答声时将其重置为24小时 如果希望服务仅作为后台进程,您也可以考虑创建服务。我经常在Visual Studio附带的应用程序上使

我想在后台运行这个程序。pref C# 我想把图标放在托盘里。 在指定的时间同步文件夹(我知道如何同步文件夹)。
如何在后台运行并启动同步(例如在2AM)?

您需要考虑使用.< /p>来运行“后台”< /p> 要启动同步,请使用计时器和

  • 每分钟检查一次时间,如果时间匹配,则开始同步
  • 或者立即计算时间间隔->TimeToStart,设置时间间隔,启动计时器,并在第一次滴答声时将其重置为24小时

如果希望服务仅作为后台进程,您也可以考虑创建服务。

我经常在Visual Studio附带的应用程序上使用Notify图标来启动同步,您可以在另一个线程上调用一个函数,该函数将每秒测量一次时间,如果是凌晨2点,您可以调用另一个线程中的另一个函数来同步文件夹(您还可以使用计时器组件)

资源:

通知图标:

C#螺纹:


计时器组件:如果我是你,我会使用Windows中的调度程序服务

提供服务、在托盘中保留图标等意味着您将填满宝贵的屏幕空间并消耗资源。更重要的是,用户需要某种方式来配置应用程序,以便他们可以选择是否使用Windows启动;如果您提供这种配置,那么它必然与其他应用程序的配置方式有所不同


另一方面,调度程序任务只需要一个进程—任务调度程序本身—并且用户可以自己禁用或删除任务。例如,苹果和谷歌的自动更新程序进程现在都以这种方式运行。

好吧,如果你从Windows窗体应用程序开始,并希望它在后台运行,挂在系统托盘上,你必须创建系统托盘,在应用程序之前隐藏主窗体。运行(MainForm),然后你就可以了

要隐藏表单,我使用:

MainForm.WindowState = System.Windows.Forms.FormWindowState.Minimized;
MainForm.ShowInTaskBar = false;
(因为Run()方法将重新启用设置visible=false。)

要创建系统托盘,我使用了以下说明:

MainForm.WindowState = System.Windows.Forms.FormWindowState.Minimized;
MainForm.ShowInTaskBar = false;