递减计数器
本文关键字:计数器 | 更新日期: 2023-09-27 18:16:00
我想知道如何制作一个递减计数器来取代计时器,因为计时器将从3开始,并每秒减少,直到达到零,它将执行一个动作。任何帮助吗?
// Change Image from "Hut" to Mole ''
private void ChangeImage()
{
Image newImage = HoleImage();
molePopup = MoleImage();
int numCol = Convert.ToInt32(NumberOfColumns);
//Random Number - Col
Random randomColumns = new Random();
int ranCol = randomColumns.Next(1, numCol);
//Random Number - Row
Random randomRow = new Random();
int ranRow = randomRow.Next(1, NumberofRows);
string Moleimage = TUtils.GetIniFileString(Moleini, "ImagePath", "PictureFile", Root + "mole2.png");
//Populate Grid with Mole at Random Times ''
Grid.SetRow(molePopup, ranRow);
Grid.SetColumn(molePopup, ranCol);
grid_Main.Children.Add(molePopup);
molePopup.MouseUp += new MouseButtonEventHandler((o, e) =>
{
MolePoints++;
grid_Main.Children.Remove(molePopup);
});
}
我可能不太清楚,但是只要程序中只有一个线程(并且没有其他线程),您就会使用这样的内容:
for(int i = 3; i > 0; i--)
{
Thread.Sleep(1000);
}
doWhatever();
对于循环的每次迭代,您让线程"休眠"1000毫秒,即1秒。为此,您需要包含System。与using System.Threading
线程。如果你在后台做一些事情,使用替代方法而不是Sleep,因为它会在指定的持续时间内锁定线程的执行。
这是Thread.Sleep()
方法的MSDN文档。如果我没理解错的话,这似乎和你想做的非常相似。
- 使用DispatcherTimer
- 设置间隔属性为1000(= 1秒)
- 创建一个代表你的倒计时的变量
- 创建一个tick事件,检查你的倒计时变量是否为零。如果为零=>停止计时器并执行操作。如果没有=>减少变量
- 启动定时器