真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net程序用時(shí)毫秒的簡(jiǎn)單介紹

怎樣用vb.net做毫秒計(jì)時(shí)器(有沒有什么類似于ccrptmr之類的控件)

不需要控件就可以,用多線程的方式實(shí)現(xiàn),在窗體上放一個(gè)Label和一個(gè)button按鈕,代碼如下:

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、海林網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為海林等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

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?=?"結(jié)束"

Start?=?DateAndTime.Timer

td?=?New?Thread(AddressOf?fun1)

td.Start()

Else

Button1.Text?=?"開始"

td.Abort()

End?If

End?Sub

'定義一個(gè)線程

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

'定義一個(gè)委托

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毫秒計(jì)時(shí)器代碼問題

elapsed.Milliseconds 獲取毫秒。

每100毫秒,do中的代碼執(zhí)行一次,執(zhí)行時(shí)間將大于100毫秒,這是產(chǎn)生誤差的地方之一。invoke執(zhí)行一個(gè)方法txt,必須等txt里面的代碼運(yùn)行完畢,方法才能返回,期間占用的時(shí)間全是“誤差”。

無限循環(huán),且沒有退出機(jī)制,停不下來。

請(qǐng)教VB中一個(gè)毫秒的問題

GetTickCount()返回的是系統(tǒng)從啟動(dòng)到現(xiàn)在的時(shí)間,單位是毫秒,你上述過程計(jì)算機(jī)用不了1毫秒就完成過程了,所以返回時(shí)間是0,你把循環(huán)次數(shù)調(diào)的多一點(diǎn)就能看到時(shí)間了,反正我的系統(tǒng)做這150次循環(huán)的時(shí)間是16毫秒吧,你可以試試看

VB 中如何表示系統(tǒng)時(shí)間 能精確到毫秒嗎

試過NN次后,我“也”發(fā)現(xiàn)這種記錄時(shí)間的精度為10.0144毫秒,

看來,這個(gè)問題是由CLR決定的,如果,只使用FCL的函數(shù),看來沒辦法解決這一問題了!

看了 LoveCherry(論成敗,人生豪邁;大不了,重頭再來!^_^) ,給出的文章鏈接,

受了些啟發(fā),對(duì)于文章中實(shí)現(xiàn)的那個(gè)A類,我沒看太明白,但是,文章中用到了QueryPerformanceCounterp這個(gè)win API函數(shù),樓主,可以導(dǎo)入用一下,我試過多次,在我的機(jī)子上,其精度為 210/1000 毫秒左右。

QueryPerformanceCounter這個(gè)函數(shù)的是一個(gè)計(jì)數(shù)器函數(shù),以百萬分之一秒為單位,來記算時(shí)間數(shù)。

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

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是經(jīng)過四舍五入,得到的0.1毫秒的精度

VB.NET,如何用TIMER控件計(jì)時(shí)

這種功能用不到TIMER,TIMER控件用在這種地方也不適合。(假如你所統(tǒng)計(jì)的時(shí)間很短,在幾分中內(nèi)話,可以使用,假如你統(tǒng)計(jì)的時(shí)間很長:幾小時(shí)、幾天幾夜,建議改用以下方式):

在你需要開始計(jì)時(shí)的地方加入一個(gè)記錄當(dāng)前時(shí)間,在你想結(jié)束的地方也得到一個(gè)當(dāng)前時(shí)間。然后將兩個(gè)時(shí)間相減。

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

VB.NET 計(jì)時(shí)器的問題

不對(duì)。步驟如下:

添加一個(gè)label標(biāo)簽名字label1 用來顯示時(shí)間

再添加一個(gè)timer控件 名字timer1 interval屬性=1000 用來計(jì)時(shí)

窗體添加代碼

Dim t As Date '用來記錄時(shí)間

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

System.EventArgs) Handles Timer1.Tick

t = t.AddSeconds(1)

Label1.Text = "登錄時(shí)間:" t.TimeOfDay.ToString

End Sub


本文題目:vb.net程序用時(shí)毫秒的簡(jiǎn)單介紹
文章位置:http://weahome.cn/article/hjcspj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部