社区
C++ Builder
帖子详情
关于线程的Synchronize()
raichy2002
2003-12-05 11:35:18
我在线程里面的Synchronize(Func)的Fuc函数中对主界面上的两个Vcl控件进行了信息更新,但是奇怪的是只有一个有反映,另一个就死活没反应,不知道是不是Func里面只能对一个Vcl进行通信呢?
...全文
62
4
打赏
收藏
关于线程的Synchronize()
我在线程里面的Synchronize(Func)的Fuc函数中对主界面上的两个Vcl控件进行了信息更新,但是奇怪的是只有一个有反映,另一个就死活没反应,不知道是不是Func里面只能对一个Vcl进行通信呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
南郁
2003-12-15
打赏
举报
回复
你先在这一句设置一个断点:
Form1->Label1->Caption=Time
并点设置它的断点条件为 每2000次中断一次.然后观察 Time 是不是有变化.
如果没有变化,说明是你的代码中还有其它的逻辑出错.
如果有变化.那么你的程序逻辑是正确的.可能只是没有刷新而已,改成:
Thread::Form()
{
Form1->Label1->Caption=FloatToStr(Time);
Form1->Label->Refresh();
//Application->ProcessMessages(); 如果还不行,把这句也加上.
}
另外,Time变量入在Thread类里,做个私有变量是不是比较好? 如果在Thread类里其它地方并不用到Time,那就直接加入到 Form类里.在那里头得到 Now();
raichy2002
2003-12-05
打赏
举报
回复
我写段代码类似这样
Public:
double Time;
Thread::Execute()
{
......
while(....)
{
Time=Now();
Synchronize(Form);
}
}
Thread::Form()
{
Form1->Label1->Caption=Time
}
但是调试程序发现Time的值只有第一次传到了Form这个函数中,以后的每次条用Form函数Time还是用的以前的值没有改变,各位这是为什么,难道Time的值不能刷新么?
aliker
2003-12-05
打赏
举报
回复
把代码贴出来
南郁
2003-12-05
打赏
举报
回复
Func 里可以多任意多个VCL控件进行界面刷新.
所以可能还是你的那段代码有些问题.
delphi vcl
线程
同步
sync
hronize
delphi vcl
线程
同步
sync
hronize
java
sync
hronize
线程
同步
当多个
线程
同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入
线程
“同步”机制,即各位
线程
之间要有个先来后到,不能一窝蜂挤上去抢作一团。
Java对象锁和类锁全面解析(多
线程
sync
hronize
Java对象锁和类锁全面解析(多
线程
sync
hronize
d关键字)编程开发技术共14页.pdf.zip
delphi多
线程
传递参数及同步二
本代码介绍了如何给
线程
传递参数,以及用参数在主
线程
中显示数据
bcb 简单多
线程
实例
最简单的多
线程
实例,适合初接触多
线程
的人员参考使用,BCB多
线程
实例。
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章