1. 程式人生 > >C++ 程式延時處理的幾種方法

C++ 程式延時處理的幾種方法

(—)使用_sleep()函式 

例如:_sleep(200);//延時200毫秒

(二)使用delay(int time)函式 (需要自己實現,編譯器裡面沒有)

/// @brief		程式延時
/// @param[in]	msec : 毫秒
///	@remark		
///	@return		void
void delay_msec(int msec)
{ 
	clock_t now = clock();
	while(clock()-now < msec);
}

/// @brief		程式延時
/// @param[in]	sec : 秒
///	@remark		
///	@return		void
void delay_sec(int sec)//
{
	time_t start_time, cur_time;
	time(&start_time);
	do
	{
		time(&cur_time);
	} while((cur_time - start_time) < sec);
}
例如,延時2秒可以這樣:delay_msec(2000); 或者 delay_sec(2);

需要指出的是,delay_msec由於使用的是clock(),所以具有更高的時間精度(精確到1毫秒,具體看編譯器定義)。

相關推薦

C++ 程式處理方法

(—)使用_sleep()函式  例如:_sleep(200);//延時200毫秒 (二)使用delay(int time)函式 (需要自己實現,編譯器裡面沒有) /// @brief 程式延時

c++中實現方法

方法七:對於精確度要求更高的定時操作,則應該使用QueryPerformanceFrequency()和 QueryPerformanceCounter()函式。這兩個函式是VC提供的僅供Windows 95及其後續版本使用的精確時間函式,並要求計算機從硬體上支援精確定時器。如示例工程中的Timer7、Ti

C#獲取程式執行路徑的方法

通過控制檯程式打印出每種方法的結果 static void Main(string[] args) { Console.WriteLine("typeof(Program).Assembly.Location:\r\n{0}",

C#多線程的方法

task start invoke 數組 erl method 並行計算 bsp nbsp 1、Theard2、TheardPool 線程池3、Task 在Theard上做了優化和改進,建議使用 .start();4、Task.Factory.Start(method)

C#線程同步的方法

sso 代碼 services 讀寫 基於 star 代碼段 不能 命名   在網上也看過一些關於線程同步的文章,其實線程同步有好幾種方法,下面我就簡單的做一下歸納。   一、volatile關鍵字   volatile是最簡單的一種同步方法,當然簡單是要付出代價的。它

C#獲取當前路徑的方法

size start orm name uri path ant tom 當前 //1.獲取模塊的完整路徑。 string path1 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileNam

求組合數C(n,m) % mod的方法

演算法一:乘法逆元,在m,n和mod比較小的情況下適用 乘法逆元:(a/b)% mod = a * b^(mod-2),mod為素數   #include<iostream> #include<cstdio> #include<cmath>

歸納一下:C#執行緒同步的方法

 我們在程式設計的時候,有時會使用多執行緒來解決問題,比如你的程式需要在後臺處理一大堆資料,但還要使使用者介面處於可操作狀態;或者你的程式需要訪問一些外部資源如資料庫或網路檔案等。這些情況你都可以建立一個子執行緒去處理,然而,多執行緒不可避免地會帶來一個問題,就是執行緒同步的問題。如果這個問題處理不好,我們就

[轉]C/C++定義全域性變數/常量方法的區別

在討論全域性變數之前我們先要明白幾個基本的概念: 原文章地址:https://www.cnblogs.com/wanghetao/p/4492582.html 1. 編譯單元(模組):     在IDE開發工具大行其道的今天,

Java使用Executor執行Callable任務方法

多執行緒在需要返回值時,我們知道需要用到Callable和Future。Callable的cell方法可以返回一個值並且可丟擲異常,是對Runnable的很好的補充;Future表示了一個任務的週期,它提供了判斷任務狀態、獲取任務結果和取消任務等方法 。 下面演示三種使用Executor執行Call

stm32CubeMX HAL庫中方式解析

/* * 本檔案包括四種延時方式: * 1. 原來的HAL庫函式HAL_Delay() 2. 採用定時器2設定延時函式 3. 採用系統滴答中斷方式的ms和us級延時 * 4. 採用系統滴答非中斷方式的ms和us級延時(在一次計數值範圍內的延時) */ /* Includes ----

C++中輸入字串的方法

轉自http://gwyan.blog.163.com/blog/static/213337092201361734257744/C++中幾個輸入函式的用法和區別(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))

C++中時間延遲的方法

方法七:對於精確度要求更高的定時操作,則應該使用QueryPerformanceFrequency()和 QueryPerformanceCounter()函式。這兩個函式是VC提供的僅供Windows 95及其後續版本使用的精確時間函式,並要求計算機從硬體上支援精確定時器。如示例工程中的Timer7、Ti

Python文字處理方法

Python文字處理幾種方法 方法一:readline函式 #-*- coding: UTF-8 -*- f = open("D:\pythontest\splm_ugslmd.log")    &nbs

C#_CombolBox新增資料的方法

方法一:檢視新增 方法二:利用陣列新增 string[] comValue = new string[] {"北京","上海","天津","重慶","廣東","廣西","湖南","湖北" };

修改.NET程式或DLL的方法

http://hi.baidu.com/expertsearch/blog/item/3763489498ffe9027bf48092.html本文目的是回答一個朋友關於修改程式集的留言,都是比較簡單的修改方式,不涉及脫殼等。1:    利用ILASM和ILDASM我們先建立如下測試程式:namespace

C++定義全域性變數/常量方法的區別

1、extern和static不能同時修飾一個變數;其次,static修飾的全域性變數宣告與定義同時進行,也就是說當你在標頭檔案中使用static聲明瞭全域性變數後,它也同時被定義了;最後,static修飾全域性變數的作

C#執行緒同步的方法

Code public void Function() {object lockThis = new object (); lock (lockThis){// Access thread-sensitive resources. }}

程式設計師保護眼睛方法

程式設計師保護眼睛的幾個小方法 作為一個程式設計師,每天都面對著電腦是不可避免的事情,但整日面對電腦對眼睛的傷害非常大。如果您有眼睛方面的不舒服,應該毫不猶豫的放下手裡的所有事情立即去看醫生。下面推薦幾個保護眼睛的幾個小方法,僅供參考。 1 修改程式設計軟體的字型大

核心的N方法

方法一:NdisMSleep VOID NdisMSleep( IN ULONG MicrosecondsToSleep ); 直接呼叫NdisMSleep,它的引數是微秒數量級。不過這裡一定要注意 呼叫環境: KeGetCu