繁体   English   中英

垃圾邮件框c#

[英]Spamming Message Boxes c#

我正在制作一个在后台运行的程序,它将在一天的特定时间弹出一个包含锻炼说明的窗口。 (对于我上班的上班族)

问题是:当运动指导的时间到了,我希望弹出一个消息框,询问您是否准备好了。 我在“ if(blabla == true)”中包含此消息框代码,因此它一直在发送垃圾邮件。

如何避免这种情况? 我看不到其他放置消息框的地方。

基本上是:

if (DateTime.Now.ToString("HH:mm") == "09:00")
{
    progress = true;
}

if(progress == true)
{
    DialogResult dialogResult = MessageBox.Show("Start?", "Bla Bla",      MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
    exercise.Action();
}
}

有没有一种方法可以将对话框放在同一位置,但只出现一次? 将使我的项目变得如此容易。

谢谢!

这不是C#或WinForms问题,而是算法问题。 首先尝试设计算法,然后将其翻译为您选择的编程语言。

接下来是什么(伪代码,假设您想每隔一个小时打扰别人一次):

nextHour = 9

loop forever:
    if now = nextHour:00
        show message box
        if answer = yes
            exercise
        nextHour++
    else
        sleep for a minute

在仅显示一次消息框后, nextHour将从9增加到10。


实际上,还有另一个选择:您要实现的是调度程序,即在特定时间执行特定操作的程序。 Windows已经包含一个调度程序,即Windows Task Scheduler

因此,不必重新发明轮子,您可以使程序看起来像这样:

show message box
if answer = yes
    exercise

将其编译为exe并将Windows Task Scheduler设置为每小时运行一次(或用户希望的频率)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM