C# 如何使用WindowsFormsC正确创建基于轮流的计时器应用程序#

C# 如何使用WindowsFormsC正确创建基于轮流的计时器应用程序#,c#,timer,C#,Timer,我目前正在使用C#、Windows窗体开发多人记忆游戏,我一直在制作计时器 玩家1收到一个令牌,这样他可以发现两个方块(此时其他玩家正在等待),然后将令牌传递给下一个玩家。每个客户机在单独的线程中运行。为了与服务器通信,我使用了newtonsoftjson网络For.NET。我使用System.Windows.Forms.timer创建了计时器 客户端接收令牌,启动计时器 case“Token”: Message tok=JsonConvert.DeserializeObject(unknown

我目前正在使用C#、Windows窗体开发多人记忆游戏,我一直在制作计时器

玩家1收到一个令牌,这样他可以发现两个方块(此时其他玩家正在等待),然后将令牌传递给下一个玩家。每个客户机在单独的线程中运行。为了与服务器通信,我使用了newtonsoftjson网络For.NET。我使用System.Windows.Forms.timer创建了计时器

客户端接收令牌,启动计时器

case“Token”:
Message tok=JsonConvert.DeserializeObject(unknown.obj.ToString());
令牌=tok.number;
timeLeft.Text=“10”;
TimeRemaining.Start();
allowClick=true;
打破
函数,用于倒计时,显示剩余的秒数,以及时间过后将令牌发回的秒数

private void TimerRemaining_Tick(对象发送方,事件参数e)
{
int timer=Convert.ToInt32(timeLeft.Text);
计时器-=1;
timeLeft.Text=Convert.ToString(计时器);
如果(计时器==0)
{
剩余时间。停止();
allowClick=false;
MessageBox.Show(“时间结束”);
发送回(令牌);
}
}
计时器工作正常,但仅适用于第一轮。在第二次接收令牌后,计时器不会再次启动


你有什么建议或解决方案可以帮助我解决这个问题吗?提前感谢。

尝试将
timeLeft.Text
重置为
timeLeft.Start()之前一轮给定的时间。我尝试过,标签已更改回10,但倒计时未开始,标签值保持不变。