那每个线程什么时候读完数据你总该知道吧,读完就设标志位,等线程发完带标志位的数据就向主线程发消息,主线程收到所有 其他Socket线程发来的完成消息 你就可以释放了(当然,前提是你不再需要这些数据)

解决方案 »

  1.   

    主线程创建线程时,把子线程Handle 保存在一个HANDLE数组中,当你想知道各线程有无完成发送时,就调用WaitForMultipleObjects(n,XXXHandle,TRUE,0);//n为线程数,xxxHandle为线程句柄.如果返回为WAIT_TIMEOUT,说明至少有一线程还没发完.
    上述要求子线程在发完数据后就要结束.否则要创建一全局事件数组,原理差不多
      

  2.   

    xyzboat所说的什么时候读完也是一个问题:是不是每个线程都要拷贝一个数据的附本才好呢,要是每个线程拷一个数据附本,就可以不管什么时候才发完了。可就算拷贝数据附本,我也要知道什么时候线程已经把数据拷完吧。主线程创建发送子线程后立即删除数据指针安全吗?谢谢各位的回复,只是我不能给更多的分,权表心意吧。