首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

秒表的精度有关问题

2012-04-30 
秒表的精度问题C# codeusing Systemusing System.Collections.Genericusing System.ComponentModelusin

秒表的精度问题

C# code
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            textBox1 = "";            button2.Enabled = false;            button3.Enabled = false;        }        int h = 0;        int m = 0;        int s = 0;        int ms = 0;//毫秒        private void button3_Click(object sender, EventArgs e)//结束按钮        {            timer1.Enabled = false;            button1.Enabled = true;            button2.Enabled = false;            button3.Enabled = false;            textBox1.Text = "";            listBox1.Items.Clear();        }        private void button1_Click_1(object sender, EventArgs e)//开始按钮        {            textBox1 = "0:0.0 0";            listBox1.Items.Clear();            timer1.Enabled = true;            button1.Enabled = false;            button2.Enabled = true;            button3.Enabled = true;        }        private void button2_Click_1(object sender, EventArgs e)//记录按钮        {            listBox1.Items.Add(textBox1.text);        }        private void timer1_Tick_1(object sender, EventArgs e)//时钟控件,频率为 1 毫秒        {            if (ms < 999)                ms++;            else            {                ms = 0;                if (s < 59)                    s++;                else                {                    s = 0;                    if (m < 59)                        m++;                    else                    {                        m = 0;                        h++;                    }                }            }            textBox1.Text = "" + h + ":" + m + "." + s + " " + ms + "";//小时: 分. 秒 毫秒        }    }}

不知为何,显示结果极不准确……

[解决办法]
你可以点开始记录一个时间
运行过程中用当前时间减去记录的时间
然后显示差值的毫秒数就可以了。。。。
为什么写这么复杂?
[解决办法]
别用timer统计,它是不可能精确的,特殊时候(繁忙)还是要丢帧(时间片)的(名言:过去的就让它过去吧)

开始的时候记录dateTime.Now timeStart

timer里面得到当前时间,然后减去timeStart

得到时间差timeSpan,再统计数据

不要简单的++--

热点排行