簡體   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