0

在继续 MFC 类复制系列的同时(对于有知识的人),这里是 CEvent 类复制:

class CEvent {
    HANDLE m_hEvent;
public:

    CEvent(
        BOOL bInitialState,
        BOOL bManualReset)
    {
        LPSECURITY_ATTRIBUTES lpEventAttributes = NULL;
        m_hEvent = CreateEvent(lpEventAttributes, 
                                bManualReset,
                                bInitialState,
                                NULL);
    }

    ~CEvent()
    {
        m_hEvent = NULL;
    }

    BOOL SetEvent()
    {
        return ::SetEvent(m_hEvent);
    }

    BOOL ResetEvent()
    {
        return ::ResetEvent(m_hEvent);
    }
    HANDLE GetHandle()
    {
        return m_hEvent;
    }
    operator HANDLE()
    {
        return m_hEvent;
    }
};

代码已根据答案进行了编辑。

4

1 回答 1

1

您正在创建命名事件 - _T("Untitled")。这是故意的吗?这样,每次创建 CEvent 时,它都会引用同一个事件 - 不会创建新事件。

还可以考虑在析构函数中销毁您的事件。

于 2012-11-07T16:48:45.990 回答