1.呼叫系統定時器的API SetTimer()函數來實現延時,需要包含頭檔
2.透過循環呼叫clock()函數讀取程式運行時間來實現延時,需要包含頭檔
#3.透過呼叫Sleep()函數,需要包含頭檔
#以上函數能實現的延時精度在10ms左右
void delay(double second)
{
LARGE_INTEGER litmp;
LONGLONG QPart1, QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart; // 取得計數器的時脈頻率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart; // 取得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart; //取得中止值
#dfMinus = (double)(QPart2 - QPart1);
dfTim = dfMinus / dfFreq; // 取得對應的時間值,單位為秒
}
while(dfTim
}
1.[self performSelector:@selector(函數名) withObject:nil afterDelay:5.0f]
條件:在uiviewController的主執行緒中
2.[NSTimerscheduledTimerWithTimeInterval:5.0f target:self selector:@selector(函數名稱) userInfo:nil repeats:NO];
在具體函數中,執行程式碼,執行完畢以後呼叫NSTimer invalidate方法來銷毀timer
#3.[NSThread sleepForTimeInterval:5.0f];
[要延遲執行的方法];
條件:主執行緒或子執行緒都可
首先bat延遲指的是執行一條指令後延遲一段時間再進行下一條指令。在cmd 或批次中,常使用以下四種方法進行時間延遲:
1、利用ping指令延時。
範例1:
@echo off
echo 延時前:%time%
ping /n 3 127.0.0.1 >nul
echo 延遲後:%time%
pause
2、利用for指令延時。
範例2:
@echo off
echo 延時前:%time%
for /l %%i in (1,1,5000) do echo %%i>nul
echo 延遲後:%time%
pause
3、利用vbs延遲函數,精確度毫秒,誤差1000毫秒內。
範例3:
@echo off
echo %time%
call :delay 5000
echo %time%
pause
exit
:delay
echo WScript.Sleep %1>delay.vbs
#CScript //B delay.vbs
#del delay.vbs
goto :eof
4、僅用批次指令實現任意時間延遲,精確度10毫秒,誤差50毫秒內僅用批次指令就可以實現延遲操作。
範例4:
@echo off
set /p delay=請輸入需延遲的毫秒數:
set TotalTime=0
set NowTime=%time%
::讀取起始時間,時間格式為:13:01:05.95
echo 程式開始時間:%NowTime%
:delay_continue
set /a minute1=1%NowTime:~3,2%-100
::讀取起始時間的分鐘數
set /a second1=1%NowTime:~-5,2%%NowTime:~-2%0-100000
::將起始時間的秒數轉換為毫秒
set NowTime=%time%
set /a minute2=1%NowTime:~3,2%-100
:: 讀取現在時間的分鐘數
set /a second2=1%NowTime:~-5,2%%NowTime:~-2%0-100000
::將現在時間的秒數轉換為毫秒
set /a TotalTime =(%minute2%-%minute1% 60)%`*60000 %second2%-%second1%
if %TotalTime% lss �lay% goto delay_continue
echo 程式結束時間:%time%
echo 設定延遲時間:�lay%毫秒
echo 實際延遲時間:%TotalTime%毫秒
pause
希望以上幾種方法能讓你圓滿的解決問題!
以上是延遲執行的程式設計方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!