c#的timer控件计时不够准确,有啥办法可以替代吗,我需要10ms左右的精度,但是timer很不准确
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#的timer控件计时不够准确,有啥办法可以替代吗,我需要10ms左右的精度,但是timer很不准确相关的知识,希望对你有一定的参考价值。
form.timer大概精确度在17ms左右,还要里面不能执行太多东西。你可以建议一个最高优先度的线程,使用sleep来计时追问
试过了,的确是,但是现在sleep也不行,不知道还有别的办法没
参考技术A .NET中有好几个Timer,精度是不一样的,System.Timers
System.Threading
System.Windows.Forms
你可以尝试第一个追问
该方法不行
参考技术B 用System.Diagnostics.Stopwatch试试吧追问可以具体点吗?谢谢
追答你是要怎么使用这个定时(或者说是延时)??
namespace : System.DiagnosticsStopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 1000000000; i++)
++i;
sw.Stop();
TimeSpan ts = sw.Elapsed;本回答被提问者采纳
(30)C# Timer类
有三种Timer
1、System.Windows.Forms.Timer
应用于WinForm中,它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用,优点简单易用
把Timer控件拖到窗体下
右键设置timer属性
有两个常用属性
Enabled 设置成True (默认是false)运行后就可以自动执行了
Interval 设置时间间隔多久运行一次 单位是毫秒, 1000毫秒等于1秒钟
双击timer1控件开始写代码
private void timer1_Tick(object sender, EventArgs e) { MessageBox.Show("hello"); }
运行程序,这样会每秒钟弹出一个hello的提示框一直运行下去。。。。。
控制定时器开关
private void button1_Click(object sender, EventArgs e) { timer1.Start();//开始 //timer1.Enabled = true;//开始 } private void button2_Click(object sender, EventArgs e) { timer1.Stop();//停止 //timer1.Enabled = false;//停止 }
timer1 是控件的名称
2、 System.Timers.Timer
和System.Windows.Forms.Timer类似但需要自己定义属性
3、System.Threading.Timer
以上是关于c#的timer控件计时不够准确,有啥办法可以替代吗,我需要10ms左右的精度,但是timer很不准确的主要内容,如果未能解决你的问题,请参考以下文章
C# 如何用计时器Timer控件实现停留几秒再做切换窗体的操作