CWinThread::PostThreadMessage()失败?/
我在这个CWinThread对象中创建了一个CAsyncSocket对象,并且接收数据。
在接收完毕之后就在这个CAsyncSocket对象中发送WM_QUIT个CWinThread对象,
让我头疼的是要是接收少量的数据的话,发送WM_QUIT给CWinThread对象成功并且接收成功,但是如果是发送大量的数据,100多m以上的就发现发送失败,CWinThread对象接收不到,我估计可能是消息堵塞,但是不知道如何入手,还请大侠指点一下阿。谢谢了
问题点数:0、回复次数:2Top
1 楼sevencat(七猫)回复于 2003-11-01 09:02:02 得分 0
WINTHREAD的原理可能是这样:
在入口函数RUN()里面有一个循环。
如果有消息过来,就处理:
像你的这个发送明显是阻在这里了。
如果是WM_QUIT消息,就直接退出的。
所以说不要一次性发送这么多,而是一次发送1460字节的数据可能稍微好点。然后在线程类或者套接字类中用一个int m_cursize来表示现在的状态。这样可能就没问题了。
我一般是用自己的线程类。
里面一般有个EVENT,主循环一次处理小量的工作,然后看一下EVENT是否被设置,如被设置了,就返回了。Top
2 楼flinming(flinming)回复于 2003-11-01 09:19:34 得分 0
PostThreadMessage我以前用过是在线程发消息出来。。。。。。。。。。。。。记得里面还有一项句柄。。。。Top



