gpt4 book ai didi

c# - x 秒后停止循环线程方法

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

我正在创建一个主机游戏,就像“我生成一个随机数,找到它”一样简单,但有很多选项。

我当前的代码(这里没有我想要的)在 GitHub 上可用:https://github.com/crakmaniaque/trouvezmoi

我想要的是创建一个计时游戏版本,这样计算机会生成数字,用户找到它,它会生成一个新数字,玩家有 90 秒的时间找到最大数量的随机数。我可以轻松编写代码。

我需要帮助的是在 90 秒后停止游戏(线程)并检索从线程创建的答案数。 Console.Title 还应显示剩余时间。我尝试过的尝试有效,但如果控制台要求数字输入 (Console.ReadLine()),线程不会中断。但计时器是针对整个过程的,而不仅仅是用户输入。

private static void timerb()
{
int t = 90;
for (int i = 0; i < 90; i++)
{
Console.Title = t + " seconds remaining";
Thread.Sleep(1000);
t--;
}
}
private static void cGame()
{
Thread t = new Thread(timerb);
t.Start();
while (t.IsAlive)
{
bool good = false;
int rnd = new Random().Next(0,10); // 0 and 10 are sample
while (!good)
{
try
{
Console.Write("Enter a number between x and y >");
int i = int.Parse(Console.ReadLine());
if (i == rnd)
{
good = true;
}
}
catch (FormatException)
{
Console.WriteLine("Invalid answer.");
}
}
}
}

我对线程知之甚少,那时我被困住了。有人可以帮我解决我的问题吗?我正在使用 .NET 2.0。

最佳答案

也许您正在寻找计时器?您可以注册一个事件,该事件将在 90 秒后触发,该事件将在循环发生时运行。文档可在此处找到:Timer class MSDN documentation .

我相信用法是:

Timer timer = new Timer { Interval = new Timespan (0,1,30);
timer.elapsed += //function to fire to kill the app or the game

关于c# - x 秒后停止循环线程方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31897944/

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