100毫秒定时器,我想每个计时器勾号返回0或1

我想做一个功能。100毫秒定时器,我想每个计时器勾号返回0或1

每个计时器都会打勾,它会闪烁绿色 并且每隔一秒计时器打勾一次就会关闭绿色。

我有一个计时器,我的胜利形式是100毫秒的时间间隔。

所以 每200毫秒我的颜色会闪烁绿色..

你可以帮我一下吧

这并不工作

var green = (((float)System.Environment.TickCount/100) % 2) != 0; 

if (green==true)

{

greenColor);

if (green==false)

{

noColor);

}

回答:

因为你有2个州(彩色或无颜色),每次我交换我推荐使用bool,并在计时器结束时反转其值,如下所示:

bool tick; 

private void theTimer_Tick(object sender, EventArgs e)

{

if(tick)

{

colorLabel.BackColor = Color.Red;//Using label as example

}

else

{

colorLabel.BackColor = Color.Green;

}

tick = !tick;//Invert tick bool

}

这样你就不需要计数器的时间,也不必计算各种东西。

回答:

你几乎在那里。只是不要使用(float)。使用整数算术。

bool green = (System.Environment.TickCount/100) % 2 == 0; 

如果您使用浮点其余部分(我不推荐),那么你的测试不应该== 0应该< 1。否则,当余数精确为零时,它只会在1 ms内变为绿色。

bool green = (((float)System.Environment.TickCount/100) % 2) < 1; 

以上是 100毫秒定时器,我想每个计时器勾号返回0或1 的全部内容, 来源链接: utcz.com/qa/265308.html

回到顶部