网站建设资讯

NEWS

网站建设资讯

vb.net程序用时毫秒的简单介绍

怎样用vb.net做毫秒计时器(有没有什么类似于ccrptmr之类的控件)

不需要控件就可以,用多线程的方式实现,在窗体上放一个Label和一个button按钮,代码如下:

创新互联建站专注于企业全网整合营销推广、网站重做改版、海林网站定制设计、自适应品牌网站建设、成都h5网站建设商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为海林等各大城市提供网站开发制作服务。

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.net毫秒计时器代码问题

elapsed.Milliseconds 获取毫秒。

每100毫秒,do中的代码执行一次,执行时间将大于100毫秒,这是产生误差的地方之一。invoke执行一个方法txt,必须等txt里面的代码运行完毕,方法才能返回,期间占用的时间全是“误差”。

无限循环,且没有退出机制,停不下来。

请教VB中一个毫秒的问题

GetTickCount()返回的是系统从启动到现在的时间,单位是毫秒,你上述过程计算机用不了1毫秒就完成过程了,所以返回时间是0,你把循环次数调的多一点就能看到时间了,反正我的系统做这150次循环的时间是16毫秒吧,你可以试试看

VB 中如何表示系统时间 能精确到毫秒吗

试过NN次后,我“也”发现这种记录时间的精度为10.0144毫秒,

看来,这个问题是由CLR决定的,如果,只使用FCL的函数,看来没办法解决这一问题了!

看了 LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) ,给出的文章链接,

受了些启发,对于文章中实现的那个A类,我没看太明白,但是,文章中用到了QueryPerformanceCounterp这个win API函数,楼主,可以导入用一下,我试过多次,在我的机子上,其精度为 210/1000 毫秒左右。

QueryPerformanceCounter这个函数的是一个计数器函数,以百万分之一秒为单位,来记算时间数。

//=============

using System.Runtime.InteropServices;

using System.Threading;

[DllImport("kernel32.dll")]

static extern bool QueryPerformanceCounter([In, Out] ref long lpPerformanceCount);

long t1 = 0;

long t2 = 0;

QueryPerformanceCounter(ref t1);

Thread.Sleep(1); //挂起一毫秒,作为演示

QueryPerformanceCounter(ref t2);

long sp = t2 - t1;//sp的单位为百万分之一秒

float f_time = (float)((decimal) sec / (decimal)10000); //得到0.0001毫秒的精度

f_time = float.Parse(string.Format("{0:F1}",f_time)); //f_time是经过四舍五入,得到的0.1毫秒的精度

VB.NET,如何用TIMER控件计时

这种功能用不到TIMER,TIMER控件用在这种地方也不适合。(假如你所统计的时间很短,在几分中内话,可以使用,假如你统计的时间很长:几小时、几天几夜,建议改用以下方式):

在你需要开始计时的地方加入一个记录当前时间,在你想结束的地方也得到一个当前时间。然后将两个时间相减。

希望以上思路可以帮到你。

VB.NET 计时器的问题

不对。步骤如下:

添加一个label标签名字label1 用来显示时间

再添加一个timer控件 名字timer1 interval属性=1000 用来计时

窗体添加代码

Dim t As Date '用来记录时间

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _

System.EventArgs) Handles Timer1.Tick

t = t.AddSeconds(1)

Label1.Text = "登录时间:" t.TimeOfDay.ToString

End Sub


文章名称:vb.net程序用时毫秒的简单介绍
网页网址:http://cdweb.net/article/hjcspj.html