C# 用如何刷帧才不卡?
人眼是每秒24帧,我每秒25帧,用线程做死循环去刷,发现有时候会很卡,并且时间有延迟,跟实际时间对不上,最主要的是cpu占太多了(达到100%).用计时器除了cpu占有率之外其他问题还是一样,不知道各位怎么解决这个问题.主要代码如下:--------------------编程问答-------------------- 复制的时候出了点问题,代码不那么好看,希望见谅.坐等解答. --------------------编程问答-------------------- 写游戏用xna吧。 --------------------编程问答-------------------- XNA,我画了500多个球,有碰撞效果的,60帧满帧运行,所以还是干啥就用啥吧 --------------------编程问答--------------------
private void showDraw()
{
while (true)
{
//当不需要刷帧时进入死循环
if (iGetBallState == null || idThread == 0)
continue;
if (idThread == 1)
{
double t = time;
Color color = Color.Green;
if(iGetBallState.setTime(ref t))
color = Color.Red;
else
time += 1.0 / 25; //每秒25帧
double x = iGetBallState.getX();
double y = iGetBallState.getY();
label_angle.Invoke(td);
ball2dView.drawShow(x, y, color);
Thread.Sleep(4);
}
}
不能自己写吗? --------------------编程问答-------------------- 线程中不更新UI,UI定时去刷新界面,线程和UI通过共享数据交互,同时保证数据同步。 --------------------编程问答-------------------- 有加双缓冲什么的吗?更新界面的逻辑最好和修改数据的部分分开,使用异步去进行。
补充:.NET技术 , .NET Framework