[英]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.