在长时间运行的过程完成后,如何提醒用户?

时间:2010-12-02 15:10:38

标签: c# winforms alerts

我正在寻找一些想法,以便在winforms应用程序完成长时间运行的过程时提醒用户。这个过程可能需要几分钟或几个小时,具体取决于他们的输入,而且他们很可能只是最小化应用程序并在此期间处理其他事情。我知道我可以做像这样的窗户声音:

System.Media.SystemSounds.Exclamation.Play();

但办公室里的大多数用户都没有扬声器,所以我觉得它不会很有效。

我可以做些什么来告诉用户,“醒醒!!!你的数据已经准备就绪,最后!!!!”

谢谢!

6 个答案:

答案 0 :(得分:3)

一些想法:

  • 动画或更改的系统托盘图标
  • 系统托盘中的“Toaster”弹出窗口(如Outlook,Messenger或某些AV应用程序使用)
  • 任务栏中的闪烁警告
  • 发送电子邮件
  • 播放声音/音频提醒
  • 消息框
  • 在应用底部的状态栏中显示指示符

其中,我喜欢系统托盘图标+烤面包机弹出最好的。任务栏中的闪烁警报要求太高,电子邮件有太多延迟并且需要太多配置,音频警报会出现问题中提到的问题,消息框阻止执行它的线程,状态栏指示器太微妙。

答案 1 :(得分:2)

这听起来像是任务栏Notification Area中通知的理想用例。

这样做的好处是可以立即警告用户,而不必依赖用户计算机上可能有或没有的声音,也不会有消息框的侵入性。

Notification sample

...除了你可能会说“完成过程”: - )

答案 2 :(得分:1)

打开一个消息框..如果应用程序最小化,它将在起始栏上闪烁。

答案 3 :(得分:1)

如何在任务栏中闪烁表单,类似于收到新邮件时大多数IM程序闪烁的方式。您需要P / Invoke才能获得该功能,但实际上非常简单:

http://pietschsoft.com/post/2009/01/26/CSharp-Flash-Window-in-Taskbar-via-Win32-FlashWindowEx.aspx

答案 4 :(得分:0)

您不需要发言人来执行console beep ...

Console.Beep();

答案 5 :(得分:0)

如果你有开发者,你可以允许用户自定义他们想要通知的方式。时间。