关于多线程的问题

jing_chen 2005-07-18 03:42:21
我现在在做一个在线考试系统,服务器端为每一个客户端开一个线程,用于通讯。考试时间到了后,我在服务器端向各个客户端发命令,然后客户端将试卷用文件的形式发送给服务器端。
我希望一次只收三个人的试卷,收取完后在接受另外三个人的试卷,直到收完。
现在我的问题是:当我发送完收试卷的命令后,就会转到其相应的线程去接受试卷,我怎么判断这三个人的试卷收完了,然后开始收另外的试卷呢。
请各位高手给我点意见!
...全文
230 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
网_风 2005-07-19
  • 打赏
  • 举报
回复
用一个hashtable保存每个线程的状态就可以了。
不过你这种同步线程的做法把你的服务器会拖死去,不信你试试60个线程连你服务器,最好用异步通讯,这样你的客户端多一点也不会成正比消耗资源。
jamesfay 2005-07-19
  • 打赏
  • 举报
回复
手绢动作完了回发一个信号不行么?

总线程不要用while(true)的方式不停工作,其间waitone一下,这样可以接收到外来的autoresetevent德信号量
jing_chen 2005-07-19
  • 打赏
  • 举报
回复
NetDNASupport(爱因斯坦):
我也考虑过你的这种想法。
但是我现在做的是为每一个客户端都建立一个线程用来通讯,在考试的整个过程中线程都是活跃的。
qpl007 2005-07-19
  • 打赏
  • 举报
回复
但是传送完毕消息只能是传递给通信线程接收,负责收试卷的总线程怎么知道已经收完一个了
---------------------------------------------------------------------------------

通信线程接收完后给负责收试卷的总线程发个消息不就得了
stonegoldaustin 2005-07-19
  • 打赏
  • 举报
回复
设置全局变量、互相发送消息、设置相关事件都可以做到线程间的通讯
NetDNASupport 2005-07-19
  • 打赏
  • 举报
回复
客户端

发送线程 不断请求 连接, 一旦连接 就发送所有数据, 放松完毕退出线程
服务端
等待 。。 连续 接受 3 个 客户端连接, 用CreateThread 创建3 个线程 , 然后使用 WaitForMultipleObjects 等待 3 个线程 全部 完成 , 进行新一轮的 等待
LoveMango 2005-07-19
  • 打赏
  • 举报
回复
学习中
jing_chen 2005-07-19
  • 打赏
  • 举报
回复
但是传送完毕消息只能是传递给通信线程接收,负责收试卷的总线程怎么知道已经收完一个了
stonegoldaustin 2005-07-19
  • 打赏
  • 举报
回复
自定义通讯消息,发送完成后发送传输完毕消息
jing_chen 2005-07-19
  • 打赏
  • 举报
回复
怎么没有人回答我的问题呀!自己顶!

110,560

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧