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毫秒,具体看编译器定义)。

 

 

 

Dev-C++是一款基于MinGW的集成开发环境,主要用于Windows系统上编写C/C++程序。关于"延迟执行"(也称为懒加载或惰性初始化),它通常是指在程序运行过程中,某些资源或操作并不立即执行,而是直到真正需要时才进行。 在Dev-C++中,如果你想实现延迟执行,可以使用条件判断、函数指针或者智能指针等技术: 1. **静态成员变量延迟初始化**:对于静态成员变量,你可以通过在声明时添加初始值为0或nullptr,然后在第一次访问时检查并动态初始化。 ```cpp class MyClass { public: static MyObject* myObject; }; // 静态成员对象的延迟初始化示例 MyClass::myObject = nullptr; // 在实际使用前检查并初始化 if (!MyClass::myObject) { MyClass::myObject = new MyObject(); } ``` 2. **函数指针/回调**:如果涉及到异步操作,可以使用函数指针存储待执行的函数,仅在需要时执行。 ```cpp void executeLater(int (*func)(int), int arg) { // 使用线程池或事件循环来异步执行 // 当需要时调用func(arg) } // 某个地方延迟执行 executeLater(myFunction, someValue); ``` 3. **延迟构造函数**:在C++11及以上版本,可以使用`std::optional`或者自定义的`Lazy<T>`模板来实现对象的延迟构造。 ```cpp class LazyObject { private: std::unique_ptr<MyObject> obj; bool constructed; public: LazyObject() : constructed(false) {} MyObject& get() { if (!constructed) { obj.reset(new MyObject()); constructed = true; } return *obj; } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellokandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值