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

ywxpeter 2007-01-06 08:38:02
网络服务端不断发送数据,客户端接收到数据并实时刷新画面,如果数据量大时,写在TClientSocketr的OnRead事件中出现停滞或死机现象,请问如何用多线程处理该问题?多谢各位大虾!
...全文
322 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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事件中出现停滞或死机现象,请问如何用多线程处理该问题?给源代码者有高分奖赏!哈哈哈!
回复
相关推荐
发帖
网络通信/分布式开发
创建于2007-08-02

1575

社区成员

Delphi 网络通信/分布式开发
申请成为版主
帖子事件
创建了帖子
2007-01-06 08:38
社区公告
暂无公告