vb.net时间间隔问题(精确到毫秒)

tanhx 2005-10-31 01:10:28
请问如何在VB.net中表示时间间隔以及如何精确计时,要求精确到毫秒
就是类似于vb6中的timer函数。
请高手指点。
...全文
1768 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
AprilSong 2005-11-01
  • 打赏
  • 举报
回复
VB6的:

Timer 函数
返回一个 Single,代表从午夜开始到现在经过的秒数。

=========================================================================
对应VB.NET的:

Timer 属性
备注
Timer 属性返回午夜过后所经过的秒数和毫秒数。秒数为返回值的整数部分,毫秒数则为小数部分。

示例
本示例使用 Timer 属性来暂停应用程序。以便在暂停期间执行其他处理。

Public Sub WaitFiveSeconds()
If TimeOfDay >= #11:59:55 PM# Then
MsgBox("The current time is within 5 seconds of midnight" & _
vbCrLf & "The timer returns to 0.0 at midnight")
Return
End If
Dim Start, Finish, TotalTime As Double
If (MsgBox("Press Yes to pause for 5 seconds", MsgBoxStyle.YesNo)) = _
MsgBoxResult.Yes Then
Start = Microsoft.VisualBasic.DateAndTime.Timer
Finish = Start + 5.0 ' Set end time for 5-second duration.
Do While Microsoft.VisualBasic.DateAndTime.Timer < Finish
' Do other processing while waiting for 5 seconds to elapse.
Loop
TotalTime = Microsoft.VisualBasic.DateAndTime.Timer - Start
MsgBox "Paused for " & TotalTime & " seconds"
End If
End Sub
请注意,由于 Timer 也是 System.Threading、System.Timers 和 System.Windows.Forms 命名空间中的定义类,因此必须用 Microsoft.VisualBasic 命名空间限定 Timer 属性。
ranzige 2005-11-01
  • 打赏
  • 举报
回复
强烈同意水如烟。

===============================
CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
界面: http://qqwwee.com/
下载: http://qqwwee.com/csdn.rar 包含源代码
tanhx 2005-11-01
  • 打赏
  • 举报
回复
多谢AprilSong(X),马上结帖……
tanhx 2005-10-31
  • 打赏
  • 举报
回复
多谢楼上,我要仔细看一下。
tanhx 2005-10-31
  • 打赏
  • 举报
回复
可能我没有说明白,我的目的是:
比如当前点是我想要的,计时为0,到下一个时间点,我想知道上一个时间点到这个时间点的时间间隔,要求精确到至少0.1秒,最好能到毫秒级,时间点不止两点。
就是类似于VB6中的timer函数。
请高手指点。
水如烟 2005-10-31
  • 打赏
  • 举报
回复
你可以用汇编的方法来做吧.

参看:
.Net 实现纳秒级别计算
http://blog.csdn.net/FlashElf/archive/2004/06/23/24336.aspx

不知道事实行不行,是不是真做到了这个精度.
水如烟 2005-10-31
  • 打赏
  • 举报
回复
精确到毫秒是不可能做到的.你看看帮助文档的说明:

当编制 Timer 组件时,需要考虑 Interval 属性的几点限制:

如果您的应用程序或另一个应用程序对系统的需求很大(如:长循环、大量计算或驱动器、网络或端口访问),那么您的应用程序可能无法以 Interval 属性指定的频率来获取计时器事件。

间隔可以在 1 和 64,767 之间(包括 1 和 64,767),这意味着即使最长的间隔(大约 64.8 秒)也不会超过一分钟很多。

不能保证间隔所精确经过的时间。若要确保精确,计时器应根据需要检查系统时钟,而不是尝试在内部跟踪所积累的时间。

系统每秒生成 18 个时钟刻度,因此即使 Interval 属性以毫秒为单位,间隔的实际精度也不超过十八分之一秒

见:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbconlimitationsoftimercontrolsintervalproperty.htm
tanhx 2005-10-31
  • 打赏
  • 举报
回复
timespan怎样使用?
不好意思,我的msdn不好用
zhengjob 2005-10-31
  • 打赏
  • 举报
回复
TimeSpan
DateTime
wangsaokui 2005-10-31
  • 打赏
  • 举报
回复
Timer在vb.net中也有
[Visual Basic]
Public Class Timer2

Public Shared Sub Main()
' Create a new Timer with Interval set to 10 seconds.
Dim aTimer As New System.Timers.Timer(10000)
AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
' Only raise the event the first time Interval elapses.
aTimer.AutoReset = False
aTimer.Enabled = True

Console.WriteLine("Press 'q' to quit the sample.")
While Console.Read() <> CInt("q")
End While
End Sub

' Specify what you want to happen when the event is raised.
Private Shared Sub OnTimedEvent(source As Object, e As ElapsedEventArgs)
Console.WriteLine("Hello World!")
End Sub
End Class
wangsaokui 2005-10-31
  • 打赏
  • 举报
回复
TimeSpan
将新的 TimeSpan 初始化为指定的天数、小时数、分钟数、秒数和毫秒数。

受 .NET Framework 精简版的支持。

[Visual Basic] Public Sub New(Integer, Integer, Integer, Integer, Integer)
[C#] public TimeSpan(int, int, int, int, int);
AprilSong 2005-10-31
  • 打赏
  • 举报
回复
这个?

Timer 属性返回午夜过后所经过的秒数和毫秒数。秒数为返回值的整数部分,毫秒数则为小数部分。

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vblr7/html/vaproTimer.htm

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧