重疊IO機制

SendData(const char* buf, size_t size)
{
 try
 {
  CEvent event(FALSE, TRUE);
  OVERLAPPED overlapped;
  ZeroMemory(&overlapped, sizeof(OVERLAPPED));
  overlapped.hEvent = event;
  if(!m_COM.Write(buf, size, overlapped))
  {
   DWORD dwBytesWritten;
   if(WaitForSingleObject(event, 500) == WAIT_OBJECT_0)
    m_COM.GetOverlappedResult(overlapped, dwBytesWritten, TRUE);
  }
 } catch(CSerialException& e)
 {
  AfxMessageBox(e.what());
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章