急急急!!!网络数据通讯问题(多线程如何解决???)

ywxpeter 2007-01-06 08:38:02
网络服务端不断发送数据,客户端接收到数据并实时刷新画面,如果数据量大时,写在TClientSocketr的OnRead事件中出现停滞或死机现象,请问如何用多线程处理该问题?多谢各位大虾!
...全文
374 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
b43ok 2007-01-27
  • 打赏
  • 举报
回复
hzlf的方法不错

先定义全局变量
MyThread: Integer; //WINAPI建立线程后返回变量
MyThreadID:Array of dword; //WINAPI建立线程时ID ***用数组吧,不然怎么调度
将OnRead事件原代码写到一个自定义的procedure,例如名字为AA
将OnRead事件新代码写如下
MyThread:=CreateThread(nil,0,@TForm1.AA,nil,0,MyThreadID);//建立个线程来运行
注意:在AA的procedure最后一条语句加入,也就是在最后一个end;之前加入
TerminateThread(MyThread,0); //结束线程

这里的全局变量用数组来保存线程id,比较好调度一些
fox1999 2007-01-27
  • 打赏
  • 举报
回复
用 ClientSocket 的阻塞模式, 才用多线程 ,
ywxpeter 2007-01-11
  • 打赏
  • 举报
回复
大家快帮帮我,我的任务完不了了,要出大问题的.我好急呀?快!快!快!
wudi_1982 2007-01-09
  • 打赏
  • 举报
回复
自己用winsock API来做,注意和VCL界面的同步。
ywxpeter 2007-01-09
  • 打赏
  • 举报
回复
请问楼上,我如何用主线程调度其它多线程?
我的刷新画面做一个线程,面接收数据是实时接收,不用线程,可以吧.
请问你的QQ是多少?我能再跟你了解一下动态创建线程的编程吗,我还不太明白.谢谢!
hzlf 2007-01-07
  • 打赏
  • 举报
回复
使用API创建多线程来运行你的OnRead事件。

先定义全局变量
MyThread: Integer; //WINAPI建立线程后返回变量
MyThreadID: dword; //WINAPI建立线程时ID
将OnRead事件原代码写到一个自定义的procedure,例如名字为AA
将OnRead事件新代码写如下
MyThread:=CreateThread(nil,0,@TForm1.AA,nil,0,MyThreadID);//建立个线程来运行
注意:在AA的procedure最后一条语句加入,也就是在最后一个end;之前加入
TerminateThread(MyThread,0); //结束线程
ywxpeter 2007-01-07
  • 打赏
  • 举报
回复
顶顶顶!
网络服务端不断发送数据,客户端接收到数据并实时刷新画面,如果数据量大时,写在TClientSocketr的OnRead事件中出现停滞或死机现象,请问如何用多线程处理该问题?给源代码者有高分奖赏!哈哈哈!

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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