我想在我的表单中添加一个stopWatch但是我制作的那个在PC中的其他计时器的时间滞后。你能给出任何解决方案吗? (我的计时器间隔是100)。 这是我的代码:
int min, sec, ms = 0;
private void timer1_Tick(object sender, EventArgs e)
{
Time.Text = min + ":" + sec + ":" + ms.ToString();
ms++;
if (ms > 9)
{
ms = 0;
sec++;
}
if (sec > 59)
{
sec = 0;
min++;
}
}
private void timer_Click(object sender, EventArgs e)
{
timer1.Start();
}
它工作但很容易延迟。我试图改变这么多东西,但没有一个能起作用。
答案 0 :(得分:3)
计时器的刻度并不像您想象的那么精确。因此,如果计算开始时间与调用 tick 的时间之间的差异会更好。
DateTime startTime = DateTime.Now;
private void timer1_Tick(object sender, EventArgs e)
{
Time.Text = DateTime.Now.Subtract(startTime).ToString(@"mm\:ss\.ff");
}
private void timer_Click(object sender, EventArgs e)
{
startTime = DateTime.Now;
timer1.Start();
}
答案 1 :(得分:0)
您的计时器间隔为100毫秒,因此为该
创建一个TimeSpan对象,作为类变量<?php
namespace App\Http\Middleware;
use Closure;
class ResponseFormer
{
public function handle($request, Closure $next)
{
$response = $next($request);
if($response->headers->get('content-type') == 'application/json')
{
if (is_array($response->original)) {
$response->setContent(camelCaseKeys($response->original));
}
else if (is_object($response->original)) {
//laravel orm returns objects, it is a huge time saver to handle the case here
$response->setContent(camelCaseKeys($response->original->toArray()));
}
}
return $response;
}
}
将此添加到您用于跟踪时间的TimeSpan对象
TimeSpan _100ms = new TimeSpan(0,0,0,0,100);
将其显示在您的用户界面中:
TimeSpan ts = new TimeSpan();
ts = ts.Add(_100ms);