CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 274746
gcc
:
这就是为什么indy组件中有个专门的防冰冻的组件了
[阅读: 480] 2006-01-11 04:09:46
就是那个带冰霜的东东了,具体为什么偶也不知道。
相关信息:
一个DELPHI的程序,用了线程。每次只要让线程里的代码跑一跑,主FORM就会被冻住好几秒。通常这样的问题该从哪个方向去考虑?
(空) (
pcplayer
[650]
2006-01-11 11:20
)
..
(空) (
老玉米
[329]
2006-01-11 11:23
)
Just let your child thread sleep(0) occasionally
(空) (
老玉米
[509]
2006-01-11 11:26
)
笑啥,严肃点。
(空) (
pcplayer
[333]
2006-01-11 11:26
)
奇怪,按说用线程的目的之一就是避免主form在某些操作时被冻结
(57字)
(
Fish
[561]
2006-01-11 11:25
)
我有个 TThreadList,主线程向里面丢东西。丢的时候也执行了Lock,然后线程去List里取东西来处理,处理后再丢出来。
(141字)
(
pcplayer
[714]
2006-01-11 11:33
)
说得不清不楚的, 贴你的代码
(空) (
holly
[375]
2006-01-11 11:52
)
最好使用PostMessage干这件事情
(空) (
GoodHope
[667]
2006-01-11 13:05
)
什么叫丢?还丢进丢出的。。
(空) (
GoodHope
[362]
2006-01-11 13:06
)
Lock,谁Lock谁?
(空) (
GoodHope
[330]
2006-01-11 13:08
)
ThreadList应该是自动加锁的吧。
(32字)
(
王中王
[511]
2006-01-11 13:11
)
AList:=ThreaeList.Lock ,然后才能访问 AList.这里没问题,我跟踪过了。就是使用这个有点费时间,可能要好几百毫秒
(空) (
pcplayer
[375]
2006-01-11 13:30
)
ThreaeList.Lock?ThreaeList是你自己写的吧。
(34字)
(
GoodHope
[486]
2006-01-11 13:36
)
就是这个。我没表述完整。
(空) (
pcplayer
[336]
2006-01-11 13:42
)
错一个字母都不行
(空) (
GoodHope
[301]
2006-01-11 13:45
)
最好要sleep一下
(空) (
zhenghj
[407]
2006-01-11 12:00
)
这就是为什么indy组件中有个专门的防冰冻的组件了
(23字)
(
gcc
[479]
2006-01-11 12:09
)
线程里面调用了Synchronize同步方法吧?
(92字)
(
GoodHope
[473]
2006-01-11 13:02
)
线程里没调用 Synchronize。一调用这玩意的话,那就真的是冻住了,再也不响应鼠标键盘了。
(空) (
pcplayer
[490]
2006-01-11 13:11
)
Synchronize里不要放大操作。如果整个线程里多数代码要放到Synchronize里执行
(24字)
(
王中王
[527]
2006-01-11 13:12
)
说得不清不楚的, 贴你的代码 (空) (holly [0] 今天 11:52)
(空) (
GoodHope
[398]
2006-01-11 13:12
)
代码太复杂了。没法贴。现在大概知道是当线程通过调用一个接口方法把数据丢给 TIdUdpServer 发出去后,界面被冻住了。没有 TIdUdpServer 就没问题。应该是线程和 ……
(空) (
pcplayer
[573]
2006-01-11 13:39
)
感觉上是一个线程等待另一个线程,显然应该用事件同步,而不应该用临界区。
(91字)
(
GoodHope
[690]
2006-01-11 13:44
)
如果这个接口方法会有何界面的消息通信,有可能冻住的,如果这样的话,就不要在非界面线程里调用这个接口方法,试一蛤post message给界面,让界面去调用它。
(45字)
(
周星驰
[477]
2006-01-11 13:45
)
这个接口方法仅仅是将数据调用 Indy UdpServer 把数据发送出去,并没有刷新界面。并且,类似的代码,我写一个简单的实验程序,就没有界面被冻住的问题。
(空) (
pcplayer
[588]
2006-01-11 14:11
)
不过,发消息的方法多半对这个问题的解决有用。
(空) (
pcplayer
[329]
2006-01-11 14:23
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录