VC++中,是否有時延函數?


在程序中,我需要一個時延函數,是否有指定延長時間的時延函數?

16 个解决方案

#1


你說的是sleep()嗎?

#2


sleep()就是的,還有一個就是可以用定時期好像也可以吧

#3


sleep()和OnTime搭配用

#4


sleep(100)以毫秒為基數

#5


最好用Timer
主線程中最好不要用sleep  
當然如果你開了線程用sleep是可以的

#6


引用 1 樓 hzy694358 的回復:
你說的是sleep()嗎?

在VC6中,用SLEEP函數報錯,它需要引用哪個庫?

#7


詳細請見 孫鑫vc++  158頁  有個延時函數OnTime 

#8


引用 6 樓 stevenuserregister 的回復:
引用 1 樓 hzy694358 的回復:
你說的是sleep()嗎?

在VC6中,用SLEEP函數報錯,它需要引用哪個庫?


windows下是Sleep

#9


你的目的是什么?用這么專業的詞語,好像不太好吧,不同的環境中,其稱呼是不一樣的

#10


我經常用_sleep()

#11


Sleep() 

Timer

#12


引用 9 樓 jszj 的回復:
你的目的是什么?用這么專業的詞語,好像不太好吧,不同的環境中,其稱呼是不一樣的

我的目的是通過串口發送多批數據,但實際只接收到1-2批;我估計是前1次發送還沒完成,就發第2次,所以包給丟棄了。因此想在2次發送之間加一個時延程序。
當然,個人以為較好的方法是檢測前1次串口發送是否完成,完成了再發第2批。但我不知道如何才能做到這一點,所以就希望用延時試試。。。

#13


嵌入匯編來實現··
__asm
{
nop;
}

#14


引用 12 樓 stevenuserregister 的回復:
引用 9 樓 jszj 的回復:
你的目的是什么?用這么專業的詞語,好像不太好吧,不同的環境中,其稱呼是不一樣的

我的目的是通過串口發送多批數據,但實際只接收到1-2批;我估計是前1次發送還沒完成,就發第2次,所以包給丟棄了。因此想在2次發送之間加一個時延程序。
當然,個人以為較好的方法是檢測前1次串口發送是否完成,完成了再發第2批。但我不知道如何才能做到這一點,所以就希望用延時試試。……

延遲不適合吧··最好在發送完成后掛起發送線程,在接收完成后再來激活這個線程繼續發送··

#15


SetTimer()吧,Sleep就不要放在界面線程中了,如果你開工作線程的話,Sleep()也可以的

#16


sleep足矣

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com