发送端倒是没有报错,但是接收端时不时会卡住,并且报 目标数组的长度不足,无法复制集合中的所有项。请检查数组索引和长度

但是去除掉循环发送之后单独发送就没有这样的问题了

解决方案 »

  1.   

    我是说,你应该想一下,随便弄一堆线程来执行同一个代码,难道线程中的代码运行时不会冲突么?
      

  2.   

    你的代码很含糊,没有写出到底是如何发送的、如何接收的。我只能说些对你的代码的粗略看法,没时间替你仔细读你的程序。你应该自己先测试一下线程不安全、冲突问题。例如你为什么要写 Sleep(100)?你怕什么呢?如果为了效率,应该避免把自己阻塞,只有怕出乱子的人才会弄一个画蛇添足的Sleep(...)来延迟。而这根本不能解决问题,而是用故意写出比较差劲的“慢”的程序来掩盖问题。真正的编程者会特意同时启动100个线程,根本用不着什么Sleep(...),而保证不会线程冲突。你的“发送端”用了欺骗你自己的做法,来“貌似”减少了线程冲突次数。而客户端,我看不出你怎么调度线程的,可能你在接收端程序中没有写“骗自己”的Sleep(....)语句,所以才会如此。