gpt4 book ai didi

c# - 程序不会停止休眠计算机

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:18 25 4
gpt4 key购买 nike

我的应用程序设置为在单击通知气球提示时进入休眠状态,并且此过程全部循环。这行得通,但是当我唤醒我的电脑时,它很快就会进入休眠状态(这有轻微的时间延迟,但因为这需要我的电脑正常进入休眠状态所需的时间,所以我不会考虑这个).我已经从我的整个程序中删除了这个片段,然后程序运行得非常好,让我觉得这段代码中有一些东西让计算机进入休眠状态。此外,如果重置了控制循环的标志之一,我已经重置了这些标志,但问题一直在发生。万一(出于某种奇怪的原因) bool 运算符影响了它,我已经在所有可能的组合中更改了它们,但它仍然不起作用!我试过添加一个命令来防止计算机进入休眠状态,但这也没有用。有什么建议么?非常感激。

for (; ; )
{
bool for3 = false;
for (; ; )
{
notifyIcon.ShowBalloonTip(10000);
System.Threading.Thread.Sleep(10000);
Application.DoEvents();
if (loopVariable)
for3 = true;
if (for3) break;
System.Threading.Thread.Sleep(60000);
}
loopVariable = false;
for3 = false;
DateTime timeOnSleep = DateTime.Now;
Application.SetSuspendState(PowerState.Suspend, false, false);//this is the annoying code
DateTime timeOnWake = DateTime.Now;
TimeSpan time = timeOnWake - timeOnSleep;
var minutes = time.TotalMinutes;
Math.Round(time.TotalMinutes, MidpointRounding.AwayFromZero);
double dMins = minutes;
try
{
int iNumber = System.Convert.ToInt32(dMins);
}
catch (System.OverflowException)
{
if (dMins >= 40)
break;
}
}
private static bool loopVariable = false;

void notifyIcon_BalloonTipClicked(object sender, EventArgs e)
{
loopVariable = true;
}

最佳答案

如果您发现自己在使用 doevents,您很可能做错了什么。如果您需要运行这样的循环,请使用 do {} 而不是 for (;;)。无论如何,你不需要这些东西。如果这不应该无限运行,您可以在调用 Application.SetSuspendState 之前禁用计时器。

    void Main()
{
Timer timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = 30000; //How often you want to show the tooltip?
timer.Enabled = true;
}

void notifyIcon1_BalloonTipClicked(object sender, EventArgs e)
{
Application.SetSuspendState(PowerState.Suspend, false, false);
}

void timer_Tick(object sender, EventArgs e)
{
notifyIcon1.ShowBalloonTip(10000);
}

关于c# - 程序不会停止休眠计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21226198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com