没有thread.sleep的定时器暂停

时间:2014-02-03 15:25:32

标签: c# timer

我尝试使用没有thread.sleep的计时器来停止延迟,所以任何想法如何在没有thread.sleep的情况下制作这段代码但是它会停止20ms。感谢帮助! :)抱歉我的英语不好。

Timer BulletTimer = new Timer();
BulletTimer.Tick += (s, args) => BulletKillPlayer(Bullet);
BulletTimer.Interval = 20;
BulletTimer.Start();

private void BulletKillPlayer(Bullet)
{
    bool pX, pY, pD1, pD2, nX, nY, nD1, nD2;
    pX = false; pY = false; pD1 = false; pD2 = false; nX = false; nY = false; 
    for (int i = 1; i < 20; i++)
    {
        if (User.Range >= i)
        {
            Thread.Sleep(20);
            foreach (MapItem MapItem in MapItem.Boxs.Values)
            {
                if (MapItem.X == Bullet.X && MapItem.Y == Bullet.Y + i && !pX) { pX = BreakBox(Bullet, MapItem); KillPlayer(Bullet, MapItem); }
                if (MapItem.X == Bullet.X && MapItem.Y == Bullet.Y - i && !pY) { pY = BreakBox(Bullet, MapItem); KillPlayer(Bullet, MapItem); }
                if (MapItem.X == Bullet.X + i && MapItem.Y == Bullet.Y && !nX) { nX = BreakBox(Bullet, MapItem); KillPlayer(Bullet, MapItem); }
                if (MapItem.X == Bullet.X - i && MapItem.Y == Bullet.Y && !nY) { nY = BreakBox(Bullet, MapItem); KillPlayer(Bullet, MapItem); }
            }
        }
    }
}

0 个答案:

没有答案