搞乱我用秒表来了解一些操作多久点(游戏)系统中运行。的Thread.Sleep与秒表
我定义它是这样的:
Stopwatch sekunde = new Stopwatch();
long tocke;
long glavnetocke;
long cas;
tocke和glavnetocke是点。
然后在“构造”我需要这样做:
sekunde.Start();
Thread.Sleep(10000);
sekunde.Stop();
如果我不为10000,它不会工作做线程睡眠。
后来在事件处理我用这样的:
sekunde.Start();
viewer.Clear();
viewer.DrawBody(body, 10.0, Brushes.Green, 10.0, Brushes.Green);
sekunde.Stop();
cas = (long)sekunde.Elapsed.TotalSeconds;
tocke = tocke + ((cas/10));
if (tocke > 200)
{
glavnetocke = glavnetocke + 1;
tocke = 0;
}
观众是绘制站在镜头前的人的身上。 如果我离开thread.sleep到10000它将工作,否则它不会。但我需要这个消失,因为它会停止整个程序。即使你只是在我按下按钮后才会发生,我需要等待10秒,然后再开始。正在考虑添加加载屏幕,但它不起作用,因为它冻结了整个程序,所以它不显示加载gif。
编辑:
良好,因为你可以看到,“tocke = tocke +((CAS/10)); tocke始终为0如果删除了Thread.Sleep或甚至更低的睡眠数是否秒表需要时间来初始化或什么? 我想获得操作运行多长时间到一个长类型变量的时间,所以我可以用它来计算游戏点数(cas =(long)sekunde.Elapsed.TotalSeconds;)
。
请考虑修改您的问题。你的意思是什么不起作用?你想实现什么? – kuskmen
@kuskmen我编辑... – user3029612
它必须没有任何Thread.Sleep工作。可能是在sekunde.Elapsed.TotalSeconds小于1秒时看?查找已选中的刻度或毫秒 –