我用的轮询,不过轮询中加了PeekMessage,DispathMessage,效果还可以;
中断是dos概念,windows下可以完全不管;
觉得轮询不好用,看看msdn带的实例程序:serials;

解决方案 »

  1.   

    可以同异步读取,用线程实现,例如:
    ReadFile(h,buf,1,&RecvLength,&RecvOverlapped);  //异步读取
    WaitForMultipleObjects(1,RecvOverlapped.hEvent,FALSE,INFINITE);//等待数据到达
    GetOverlappedResult(h,&RecvOverlapped,&RecvLength,FALSE); //取得实际读取的数据长度
      

  2.   

    可以用串口事件消息。WaitCommEvent()
      

  3.   

    大体上是这样的吧:HANDLE hComm = CreateFile("com1",...)other thread:
    {
        SetCommMask(hComm,...)
        do{
            WaitCommEvent(hComm,...)
            ReadFile(hComm,...)    
        }while(1)
    }