创建了一个命名管道,连接失败了,为什么?解决思路

创建了一个命名管道,连接失败了,为什么?
C/C++ code

#include "stdafx.h"
#include<Windows.h>
int main(void)
{
    HANDLE hPipe= CreateNamedPipe( "\\\\.\\pipe\\mypipe",
                               PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,
                               PIPE_TYPE_BYTE|PIPE_READMODE_BYTE,
                               PIPE_UNLIMITED_INSTANCES,
                               sizeof(UUID),
                               sizeof(UUID),
                               10000,
                               NULL );
    HANDLE m_evt=CreateEvent(NULL,TRUE,FALSE,"myevent");
    OVERLAPPED m_ov;
    ZeroMemory( &m_ov, sizeof(m_ov) );
    m_ov.hEvent = m_evt;

    if( ! ConnectNamedPipe( hPipe, &m_ov ) ){
        printf("connect fail\n");
        return 1;
    }
    DWORD dwWritten;
    WriteFile(hPipe,"my",2,&dwWritten,nullptr);
    WaitForSingleObject(m_evt,INFINITE);
    printf("Ok\n");
    return 0;
}



运行输出connect fail. 查看错误代码/信息,说是Overlapped I/O operation is in progress.
为什么?

------解决方案--------------------
异步通信是这样的
你看看这篇文章
http://blog.csdn.net/jiangdf/article/details/5681487