c++延时函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:记录下之前找到的延时函数


一、sleep

在标准库中可以使用Sleep()函数进行延时,其单位是毫秒,如果想要延迟5秒则其方法如下:

Sleep(5*1000);

二、delayMsec

代码如下(示例):

void MainWindow::delayMsec(int msec)
{
    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<0.000001*msec);//msec=1000时代表一毫秒
}
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; } }; ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值