我的进程有3个线城
1、UI线程
2、文件发送线程
3、文件接收线程
当文件接收线程执行第二次recv的时候停住了,控制权交给了UI线程。我跟踪了一下,文件发送线程并没有停,直到把文件发完。下面是接收线程的带码段:
while(ulLeft>0)
{
ULONG ulGetCount=0;
ATLTRACE("receive left %d bytes.\n",ulLeft);
ulGetCount=recv(sockClient,buf,ulBufSize,0);//第二次运行到这的时候停了
if (ulGetCount != -1)
{
WriteFile(hfile,buf,ulGetCount,&iNum,0);
ulLeft-=ulGetCount;
::SendMessage(hwndProgress,PBM_SETPOS,(WPARAM)(int)((double)((uiFileLength-ulLeft)/uiFileLength)*100),0);
}
}
希望大家多多指点