zoukankan      html  css  js  c++  java
  • vc++ 下的WaitForSingleObject

    #include <process.h>
    #include <windows.h>
    #include <iostream>
    
    using namespace std;
    
    //WaitForSingleObject 检测对象是否有信号。可以配合event使用,或直接检测对象。
    //如果Object被激活了,或者正在使用,那么该Object就是无信号,也就是不可用;另一方面,如果Object可用了,那么它就恢复有信号了
    //如果要检测正在使用,那么等待时间为0就好。会返回WAIT_TIMEOUT。
    //如果要检测是否停止,那么稍微加点时间。会返回WAIT_OBJECT_0

    //1.线程 正常返回.
    //2.等待一点点时间.
    //3.WaitForSingleObject只有返回obj,说明成功.

    //4.那么就关闭handle,并设置handle为null.

    bool runing=true;
    HANDLE m_hThreadHandle = NULL;
    
    unsigned __stdcall ThreadFunction(LPVOID pThreadData)
    {
        while(runing)
        {
            Sleep(500);
            cout<<"running"<<endl;
        }
        return 0;
    }
    
    unsigned __stdcall CheckThreadFunction(LPVOID pThreadData)
    {
        while(true)
        {
            Sleep(1000);
            DWORD dw = WaitForSingleObject(m_hThreadHandle, 10);
            if (dw==WAIT_TIMEOUT)
            {
                cout<<"wait"<<endl;
            }
            else if(dw==WAIT_OBJECT_0)
            {
                cout<<"obj"<<endl;
            }
            else if(WAIT_FAILED==dw)
            {
                cout<<"fall"<<dw<<endl;
            }
            else
            {
                cout<<"other:"<<dw<<endl;
            }
        }
        return 0;
    }
    
    
    //检测线程是否在运行。
    int main()
    {
        //LSU_HELPER::CThread mythread(myloop);
        //mythread.StartThread();
        //Sleep(5000);
        //mythread.StopThread();
        //Sleep(1000);//等待线程退出,
    
        m_hThreadHandle=(HANDLE)_beginthreadex(NULL,0,ThreadFunction,NULL,0,NULL);//
    
        HANDLE m_hThreadHandlecc=NULL;
        m_hThreadHandlecc=(HANDLE)_beginthreadex(NULL,0,CheckThreadFunction,NULL,0,NULL);//
    
        Sleep(5000);
        runing=false;
        Sleep(5000);
    
        return 0;
    }
  • 相关阅读:
    SNS与在线旅游
    案例分析:荷兰铁路公司的分布式Scrum开发
    不要把简单的事情搞得N复杂(例1)
    魔兽争霸苹果版 mac安装
    UI展现技术总结
    谈使用final关键字
    蓝牙PSKEY的调整
    Android架构详解
    WINCE6.0文件系统选择
    WINCE蓝牙应用开发方式
  • 原文地址:https://www.cnblogs.com/lsfv/p/7992085.html
Copyright © 2011-2022 走看看