线程无法接收手工信号的有关问题

线程无法接收手工信号的问题
现有以下代码,g_Event, g_Thread 都是全局变量,想用自定义的A类对象的Start() 来创建myThread线程,然后用 End() 来发出线程终止信号让 myThread 退出返回。编译后程序虽然未报错,线程内的程序也正确执行了,但最终发现 myThread 根本收不到 SetEvent(g_Event) 这个信号,线程无法退出。

我是个新手,请高人看看是哪里写错了。谢谢!

HANDLE g_Even = NULL;
HANDLE g_Thread = NULL;

class myClass A;

unsigned int __stdcall myThread(void *param)
{
      while(WaitForSingleObject(g_Event, 500) != WAIT_OBJECT_0)
      {
            ...........
       }
      .................
      return 0;
}

A::Start()
{
     g_Event = CreateEvent(NULL, TRUE, FALSE, NULL);  // g_Event 初始化为 “无信号”,且需要手工重置信号
     g_Thread = _beginthreadex(....., myThread, ....);
}

A::End()
{
     SetEvent(g_Event);
     WaitForSingleObject(g_Thread, INFINITE);
     CloseHandle(g_Thread);
}
------解决思路----------------------
GetLastError() 查看错误代码
------解决思路----------------------
把CreateEvent(NULL, TRUE, FALSE, NULL); 放在初始化函数中,不要放在Start中