UCHAR *outContext = dlg->OutEndpt->BeginDataXfer(packbuf,PACKLEN_OUT,&outOvLap);
UCHAR *inContext = dlg->InEndpt->BeginDataXfer(wstate,PACKLEN_IN,&inOvLap);
Sleep(10);
dlg->OutEndpt->WaitForXfer(&outOvLap,8000);
success_out = dlg->OutEndpt->FinishDataXfer(packbuf, outlen, &outOvLap,outContext);
if(!success_out)
....
....
在我程序中,下位机是单片机,数据out后要处理几ms时间。如果不加那个Sleep(10),要在传输第二批数据时就会卡在WaitForXfer上面,我把里面8000改大也没用,这个8000应该是等待8秒了,而Sleep(10)只是暂停了10毫秒而已,WaitForXfer等待的时间长了去了反而不行!
这个WaitForXfer()就是起等待作用的,为什么不行?还要另外加Sleep(10)这个延时函数才可以正常通信呢呢? |