replacement for thread.sleep
本文关键字:sleep thread for replacement | 更新日期: 2023-09-27 18:03:48
我想做一个电子宠物,但是我遇到了一个问题。我有一个进度条的最大值为300。每隔5-8秒,进度条就会清空一点。一旦温度降到250以下,你就可以睡觉了。下面是我到目前为止的代码:
private void BtnSleep_Click(object sender, EventArgs e)
{
if (PgbSleep.Value <= 250)
{
int temp = PgbSleep.Maximum - PgbSleep.Value;
if (temp + PgbSleep.Value >= 300)
{
Timer2.Stop();
Thread.Sleep(20000);
PgbSleep.Value = 300;
Timer2.Start();
}
}
else
{
MessageBox.Show("Your pokemon is not tired enough to sleep! try playing with it");
}
}
我正在寻找
的替代品。Thread.Sleep(20000);
但不知道该用什么。任何帮助将非常感激!
Thread.Sleep(20000);
应该是一个冷却时间,一旦完成,如果满足要求,用户可以再次休眠。
尝试使用计时器:
Timer sleepTimer = new Timer(20000); //Creates a timer for sleeping
public MyClass()
{
sleepTimer.Elapsed += new EventHandler((s, e) => WakeUp());
}
private void BtnSleep_Click(object sender, EventArgs e)
{
if (PgbSleep.Value <= 250)
{
int temp = PgbSleep.Maximum - PgbSleep.Value;
if (temp + PgbSleep.Value >= 300)
{
Timer2.Stop();
sleepTimer.Start();
}
}
else
{
MessageBox.Show("Your pokemon is not tired enough to sleep! try playing with it");
}
}
private void WakeUp()
{
PgbSleep.Value = 300;
Timer2.Start();
}