【问题标题】:C# WinForms: Creating a background notification applicationC# WinForms:创建后台通知应用程序
【发布时间】:2011-11-04 11:07:51
【问题描述】:

出于实际目的但也作为学习练习,我想创建通知应用程序来提醒我朋友的生日。我希望应用程序在后台运行,以便它可以根据用户配置的提醒检查当前日期。如果提醒到期,则向用户显示一个简单的窗口,允许他们暂停或关闭通知。我希望应用程序具有用户特定的通知(即用户 B 登录时看不到用户 A 的通知)。

选项 1 - Windows 启动时启动的应用程序: 我考虑通过仅在应用程序启动时检查何时显示通知来保持简单。然后我会在 Windows 启动文件夹中放置一个快捷方式。但是,如果 PC 每天都进入睡眠状态并恢复,这可能不起作用。

选项 2 - 应用程序在后台持续运行: 然后我考虑制作应用程序,使其最小化为系统托盘中的图标,从而不断在后台运行。然后它会定期检查何时显示通知。

选项 3 - 将 Windows 服务与应用程序一起使用: 然后我考虑使用 Windows 服务定期检查何时显示通知。显然,Windows 服务无法显示 UI 通知,因此它需要使用其他一些通知机制(例如发送电子邮件)。然后可以使用应用程序来配置服务使用的设置。

还有其他我没有考虑过的更好的选择吗?我目前倾向于在我的第一次实施中使用选项 2,但之后可能会寻求更好的解决方案。

TIA

【问题讨论】:

  • 你需要1个和 2个。它必须先启动。启动时不要显示,用户此时有其他计划。

标签: c# winforms windows-services


【解决方案1】:

您的选项 2 是最佳选项,因为您针对不同的用户及其提醒 - 您的应用程序在特定用户的上下文中运行,您已经知道需要显示哪些剩余部分。当然,您可以选择第三种选择,但这种方式确实需要更多时间来编写代码,并且代码本身会更复杂。我会选择第二种选择。由于您的应用程序是 WinForms,因此对于定期检查,我建议您使用 System.Windows.Forms.Timer 类。

顺便说一句,在托盘通知区域显示一个图标不会让您的应用程序“在后台运行”,它只是一种方便的方式来显示您的应用程序已启动并正在运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    相关资源
    最近更新 更多