无法使用SetEvent和WaitForSingleObject执行我的线程

时间:2010-11-03 14:06:34

标签: windows-ce

我正在尝试创建一个线程并让它运行直到我的主要信号启动它,我认为这是用SetEvent完成的。但是线程中的代码永远不会被执行。下面是我已经删除(我认为)无关功能的裸代码。算法是否正确? 这就是我的想法:

在main中创建线程时,这意味着它将在后台运行。当设置事件(SetEvent)时,线程在WaitForSingleObject中拾取它,然后执行线程中的代码,对吗?


HANDLE hThread;                                                     
HANDLE Event;

DWORD Thread()
{
while(1)
    {
    wait = WaitForSingleObject(Event, INFINITE)
    //This is where I want to execute something
    }
}


int _tmain()
{
    DWORD dw;
    int i;


    Event = CreateEvent(NULL,false,false,NULL);
    hThread = CreateThread(NULL,0,Thread,EventA,0,NULL);            

    while(1)
        {
        if (condition is correct)
            {
            SetEvent(Event);
            }


        CloseHandle(Thread);
        CloseHandle(Event);
        }

    return 0;
}

感谢您阅读。

1 个答案:

答案 0 :(得分:1)

将CloseHandle线移出while循环。