zoukankan      html  css  js  c++  java
  • 防止界面卡顿

    void DoEvents()
    {
        MSG msg;
        // Process existing messages in the application's message queue.
        // When the queue is empty, do clean up and return.
        while (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
        {
            if (!AfxGetThread()->PumpMessage())
                return;
        }
    }
    
    void Delay(DWORD time)
    {
        DWORD t=::GetTickCount();
        while(::GetTickCount() -t < time)
        {
            DoEvents();
        }
    }
    void CMainFrame::DelayTCount(int tcount)
    {
        DWORD dwStart = GetTickCount();
        DWORD dwEnd   = dwStart;
        do
        {
            MSG   msg;
            GetMessage(&msg,NULL,0,0);
            TranslateMessage(&msg);
            DispatchMessage(&msg);
            dwEnd = GetTickCount()-dwStart;
        }while(dwEnd < tcount);
    }
    void CMainFrame::DelayTCount1(double tcount)
    {
        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<tcount);
    }
  • 相关阅读:
    统计数据持久化
    缓存层的实现
    C++语法疑点
    为什么需要定义虚的析构函数?
    C++ shared_ptr deleter的实现
    条件变量
    ubuntu  输入时弹出剪切板候选项
    leetcode Bitwise AND of Numbers Range
    C/C++ 字符串 null terminal
    C++ inline weak symbol and so on
  • 原文地址:https://www.cnblogs.com/profession/p/4633571.html
Copyright © 2011-2022 走看看