HANDLE m_S = CreateSemaphore(NULL, 1, 1, "_MY_SEMAPHORE"); 进入通讯时:
WaitForSingleObject(m_S, INFINITE); 
退出通讯后
ReleaseSemaphore(m_S, 1, NULL);可是还会出现,通讯都进不来的现象。请问如何解决?谢谢!

解决方案 »

  1.   

    跟USB设备交互那块怎么做的?同步读写没数据的情况下一样阻塞
    多线程操作USB设备?
      

  2.   

    是多进程操作USB设备
    usb协议:完整的一个命令:包括发送一个包,然后接收返回包。在发命令之前WaitForSingleObject(m_S, INFINITE); 
    在收到返回包之后ReleaseSemaphore(m_S, 1, NULL); 
      

  3.   

    HANDLE m_S = CreateSemaphore(NULL, 0, 1, "_MY_SEMAPHORE"); 
    那既然如此信号量初始化应该是无效吧,你的意思是 命令交互的线程 完成后才通知 数据交互线程?
      

  4.   

    我开始是这样 m_S = CreateSemaphore(NULL, 1, 1, "_MANLEY_MLINK_SEMAPHORE"); 
    初始时有信号的。
      

  5.   

    CloseHandle(m_S);取代
    ReleaseSemaphore(m_S, 1, NULL); 
    试试请问哥们,能不能帮忙看看这个问题http://topic.csdn.net/u/20090531/09/42902f04-7dc2-46cd-9632-908f6d8f05ac.html
      

  6.   

    注意你的wait及release之间会不会发生意外?