Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在两个回合之间等待,不要暂停脚本的其余部分_C#_Stopwatch_Pause - Fatal编程技术网

C#在两个回合之间等待,不要暂停脚本的其余部分

C#在两个回合之间等待,不要暂停脚本的其余部分,c#,stopwatch,pause,C#,Stopwatch,Pause,我目前的项目有4个玩家:1个人(你)和3个人工智能。这是一个原创病毒游戏的再创造,给出了一个想法。你做一个移动,然后游戏增加当前玩家的回合,检查它是否是AI,如果是,移动它。如果没有,让玩家(你)移动。在所有转弯之间,我有一个定时器设置 using Systems.Diagnostics; //Inside the method. int timeBetweenTurns = 400; Stopwatch stpw = Stopwatch.StartNew(); While(stpw.Ela

我目前的项目有4个玩家:1个人(你)和3个人工智能。这是一个原创病毒游戏的再创造,给出了一个想法。你做一个移动,然后游戏增加当前玩家的回合,检查它是否是AI,如果是,移动它。如果没有,让玩家(你)移动。在所有转弯之间,我有一个定时器设置

using Systems.Diagnostics;

//Inside the method.

int timeBetweenTurns = 400;
Stopwatch stpw = Stopwatch.StartNew();
While(stpw.ElapsedMiliseconds < 400)
{
    Application.Update();
}
使用系统诊断;
//在方法内部。
int timeBetweenTurns=400;
Stopwatch stpw=Stopwatch.StartNew();
而(stpw.elapsediliseconds<400)
{
Application.Update();
}
这适用于回合本身,但不适用于代码的其余部分。例如,我有一个重启按钮。我必须双击该按钮才能运行clickevent。关键是,我必须运行重启方法两次,因为AI仍然会轮到它


如何制作一个计时器,使其仅在每次转动后暂停,而不禁用按钮等元素?

您可以使用多个线程。在C#中实现线程有很多方法——请参见此处:
Stopwatch
类与暂停或多线程无关。你想做什么?如果你想周期性地执行某件事情,请使用计时器。如果您想在不阻塞UI线程的情况下暂停方法,请使用
wait Task.Delay()