我用一个串口接收数据,然后通过软件发送到大概60个左右的客户端。发送客户端是通过TCP协议发送的。串口接收数据量比较大。
1,我曾经试过直接在串口接收事件中写一个for循环来向客户端发送数据。但是这样的话,假如网络不是很稳定,发送客户端数据时间势必会很长。而导致串口接收数据溢出,而使软件无响应。
2,后来我改成勇多线程去发送数据。收到一条数据,创建一个线程来发送。但是数据量大的时候导致“Thread Creation Error:存储空间不足,无法处理此命令”这样的错误,依然导致我的软件达不到我预期的效果!希望大家能够帮我想想办法。线程创建过多?那该怎么办,我怎么可以统计到线程的个数呢?或者说从总体角度考虑,有没有一个更好的解决方案!
1,我曾经试过直接在串口接收事件中写一个for循环来向客户端发送数据。但是这样的话,假如网络不是很稳定,发送客户端数据时间势必会很长。而导致串口接收数据溢出,而使软件无响应。
2,后来我改成勇多线程去发送数据。收到一条数据,创建一个线程来发送。但是数据量大的时候导致“Thread Creation Error:存储空间不足,无法处理此命令”这样的错误,依然导致我的软件达不到我预期的效果!希望大家能够帮我想想办法。线程创建过多?那该怎么办,我怎么可以统计到线程的个数呢?或者说从总体角度考虑,有没有一个更好的解决方案!
解决方案 »
- 往Frame里面的一个edit 传数据怎么写
- 改变Form标题栏的颜色,不想它是蓝色,太死板,送40分
- 求救!急。面试题,简单。
- 为什么我写的ActiveX From 在网页中浏览只看到一片灰色,其它的控件都不知道跑哪去了。请高求解
- 非常难的一个问题!!郁闷中....
- 高手们,帮帮忙!!!!!!!!
- 速达的网格使用什么控件做的?
- 急!delphi里如何接收DLL过来的自定义消息!!
- 关于李维的三本书,有问题请教大家,大家务必帮忙。先谢谢了!
- 共107分,就一个fileread,filewrite问题,两天啦,怎么就没人帮我!!!!!!!!!!!
- Delphi中处理Sql表的问题!
- 如何制作sql server和access的通用程序版本?登陆时可以切换
我的线程很简单的处理,就是一个for循环,发送到客户端,并且FreeOnTerminate := True;造成错误的概率我想应该会很小。
我这个软件也不是说一开就报这个错,而是数据量大的时候我在debug软件中看到报的这个错!
这样,多线程也会过多的啊看看tcp不好的时间大约是多久,期间串口会收到多少字节
1.动态创建线程有何弊端呢?原因你还没说呢!
2.你第二点的办法可以采取,能告诉我个好的方案么?
3.这点意思不是很明白。
期待回复