C# 编写一个在后台运行的程序,每小时执行一次操作

C# 编写一个在后台运行的程序,每小时执行一次操作,c#,windows,background,C#,Windows,Background,我想用C语言编写一个应用程序,它大部分时间在后台运行。它应该只显示一个TrayIcon。为此,我找到了一个教程: 但是我如何告诉我的程序每小时运行一次呢?实现这一点的最佳方式是什么。计时器?应用程序应该在不执行任何操作的情况下使用尽可能少的资源 谢谢你,我的程序不是一直运行,而是每小时执行一次活动。编写一个执行活动的程序,然后使用每小时计划一次。问题:您正在执行的程序是“用户空间”程序,还是即使用户未登录也应该运行?换句话说,它是否应该一直打开 基本上,您是在做一些对用户有用的事情,还是在做一些

我想用C语言编写一个应用程序,它大部分时间在后台运行。它应该只显示一个TrayIcon。为此,我找到了一个教程:

但是我如何告诉我的程序每小时运行一次呢?实现这一点的最佳方式是什么。计时器?应用程序应该在不执行任何操作的情况下使用尽可能少的资源


谢谢你,我的程序不是一直运行,而是每小时执行一次活动。编写一个执行活动的程序,然后使用每小时计划一次。

问题:您正在执行的程序是“用户空间”程序,还是即使用户未登录也应该运行?换句话说,它是否应该一直打开

基本上,您是在做一些对用户有用的事情,还是在做一些像将web服务器的日志文件归档到数据库这样的业务任务

如果是前者,继续执行通知区程序。如果是后者,请跳过通知区程序并构建一个完整的通知区


在这两种情况下,使用定时器;资源使用将是最低限度的

不确定处理成本,但您可以编写一个睡眠计时器,让它在一个循环中睡眠一个小时,这样它就会醒来,运行,然后再次睡眠。不过,我不确定睡觉时会消耗多少资源。另外,如果节目可能需要几分钟,您可以根据DateTime计算睡眠时间。现在,DateTime对象可以让它每小时在一个小时内醒来。

正是我要建议的。它还有一个额外的优点,即您的应用程序在不执行活动时不会消耗任何资源,因为它在该时间内没有实际运行。但是应用程序应该用户可以与之交互。应用程序应该对文件系统中的更改做出反应,或者当用户登录或关闭可能重复的“是”时,应用程序应该始终运行,并在用户登录时作出反应。我可以使用.Net Timer类作为计时器吗?对用户登录作出反应是什么意思?我知道你可能不想泄露一切,但你到底想做什么?此外,您的windows服务应该能够通过覆盖我需要编写一个程序来检测登录,该程序可以获取有关计算机的所有信息,如cpu型号、ram、图形等。。。。它应该记录用户登录和用户注销。也可以让用户在应用程序中创建消息。嗯。。。好的,这里有很多功能。我认为您第一句话中的所有内容都可以通过覆盖OnSessionChange的Windows服务来处理。有关更多信息,请参阅。但是你的第二句话会引起问题。。。Windows服务通常没有用户界面。您可能需要第二个只处理用户消息的通知区程序。