一阵狂风 发表于 2011-3-29 09:36:12

用delphi的谁告诉我一下线程多了是不是不好啊?

我写的挂开了5个线程了。看样子还要加。
加一个检查当前窗口的。以前用vb的时候是狂加timer。多了就卡了。线程有这个问题吗

一阵狂风 发表于 2011-3-29 09:36:53

很多检查都需要另起线程。随时检测的。而且他们中间在不同的时候会进行不同的操作相互不干扰的。似乎不能合并在一起线程里检查。可总这么开。开那么多。没问题吗?

雨夜 发表于 2011-3-29 09:37:12

我开了5个线程 ,个人感觉还好 线程分配是1 获得所有的内存数据 2 界面刷新显示 3 保护线程 4 攻击线程 5实时过滤线程(根据情况来觉得是否开启)

brahmana 发表于 2011-3-29 09:37:42

2 界面刷新显示

这个线程可以不用,

在线程调用同步就可以了!

其它打怪线程和捡物线程可以合二为一的,因为你的物品是在怪之后的

iamplayboy 发表于 2011-3-29 09:39:01

关于怪线程和捡物线程合二为一 这个问题,我目前的解决方法是 在挂机打怪中有过滤代码, 并还是开了一个线程单独进行过滤,
我个人认为 使用单独的过滤线程效率高,
好处是1;打怪掉出的物品 刚出现就过滤掉了,
            2,可以在手动打怪的时候进行过滤,
            3,过滤的更准确,如果在打怪的进程中使用过滤 当怪物死亡后再过滤,必需做到打落了多少个物体就要大循环多少次,要要不然如果打掉的物品中有2个相同的东东 会只过滤一个,这样会造成效率低下,
当然也有缺点 地面有物体 并自己还在打怪 造成不停的过滤 系统资源会高些(我的电脑大概会占30%左右)

余辉脉脉 发表于 2011-3-29 09:39:21

线程多少,没有一定的说是好还是坏!要看你写的好不好!程序的简洁性!

iamplayboy 发表于 2011-3-29 09:40:40

timer不是真正的线程,而是在主线程的消息列队中插入WM_TIMER这个消息,
sleep是使用当前线程自动放弃CPU时间片,
所以你在TTimer这个控件中写sleep的代码时如果你的界面是在主线程中,那么界面就会在你sleep的时候没有反应,
bbsyjh的代码不是假死,但是在Delay执行时CPU会占到100%,
这个最好的解决方法就是多线程+sleep来实现
页: [1]
查看完整版本: 用delphi的谁告诉我一下线程多了是不是不好啊?