包含vb.net系统时间毫秒的词条

vb.net毫秒计时器代码问题elapsed.Milliseconds 获取毫秒 。
每100毫秒,do中的代码执行一次,执行时间将大于100毫秒,这是产生误差的地方之一 。invoke执行一个方法txt , 必须等txt里面的代码运行完毕 , 方法才能返回,期间占用的时间全是“误差” 。
无限循环,且没有退出机制,停不下来 。
怎样用vb.net做毫秒计时器(有没有什么类似于ccrptmr之类的控件)不需要控件就可以,用多线程的方式实现,在窗体上放一个Label和一个button按钮,代码如下:
Imports System.Threading
Public Class Form1
Dim Start As Double
Dim td As Thread
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = "00:00:00 000"
Button1.Text = "开始"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Button1.Text = "开始" Then
Button1.Text = "结束"
Start = DateAndTime.Timer
td = New Thread(AddressOf fun1)
td.Start()
Else
Button1.Text = "开始"
td.Abort()
End If
End Sub
'定义一个线程
Private Sub fun1()
Dim elapsed As TimeSpan
Dim Dg_txt As New Dg(AddressOf txt)
Do
elapsed = TimeSpan.FromMilliseconds((DateAndTime.Timer - Start) * 1000)
Me.Invoke(Dg_txt, elapsed.ToString, Label1)
Thread.Sleep(100)
Loop
End Sub
'定义一个委托
Delegate Sub Dg(ByVal s As String, ByVal obj As Label)
Sub txt(ByVal s As String, ByVal obj As Label)
obj.Text = s
End Sub
End Class
VB 中如何表示系统时间 能精确到毫秒吗试过NN次后vb.net系统时间毫秒,我“也”发现这种记录时间的精度为10.0144毫秒vb.net系统时间毫秒,
看来,这个问题是由CLR决定的 , 如果,只使用FCL的函数,看来没办法解决这一问题vb.net系统时间毫秒了!
看了LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) , 给出的文章链接,
受了些启发,对于文章中实现的那个A类,我没看太明白,但是 , 文章中用到了QueryPerformanceCounterp这个winAPI函数 , 楼主,可以导入用一下,我试过多次,在我的机子上,其精度为210/1000毫秒左右 。
QueryPerformanceCounter这个函数的是一个计数器函数,以百万分之一秒为单位,来记算时间数 。
//=============
usingSystem.Runtime.InteropServices;
usingSystem.Threading;
[DllImport("kernel32.dll")]
staticexternboolQueryPerformanceCounter([In,Out]reflonglpPerformanceCount);
longt1=0;
longt2=0;
QueryPerformanceCounter(reft1);
Thread.Sleep(1);//挂起一毫秒,作为演示
QueryPerformanceCounter(reft2);
longsp=t2-t1;//sp的单位为百万分之一秒
floatf_time=(float)((decimal)sec/(decimal)10000);//得到0.0001毫秒的精度
f_time=float.Parse(string.Format("{0:F1}",f_time));//f_time是经过四舍五入 , 得到的0.1毫秒的精度
怎么在VB.net中实时显示时间定时器中处理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 10 '10毫秒刷新一次
Timer1.Start() '开启定时器
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = Now
End Sub
【包含vb.net系统时间毫秒的词条】vb.net系统时间毫秒的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net系统时间毫秒的信息别忘了在本站进行查找喔 。

    推荐阅读