CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

各位各位,帮忙进来看看这个线程的问题!!!!!!!!!!!!!!!!!!!!!

楼主loader(追求必将永恒!)2002-03-18 22:01:49 在 Delphi / VCL组件开发及应用 提问

代码没有写完全:  
   
  type    
      TTestThread   =   class(TThread);  
      private:  
          Answer:   integer;  
      protected:  
          procedure   GiveAnswer;  
          procedure   Execute;   override;  
  end;  
   
  ...  
   
  procedure   TTestThread.GiveAnswer;  
  begin  
      MianForm.Edit1.Text:=IntToStr(Answer);  
  end;  
   
  procedure   TTestThread.Execute;  
  var  
      i:integer;  
  begin  
      FreeOnTerminate   :=   Trure;  
      ....  
      GiveAnswer;//问题出在这里  
      ...  
  end;  
   
  为什么可以直接调用GiveAnswer!!!!!!!!!!  
  不是应该这样吗:Synchronize(GiveAnswer);  
   
  我知道Synchronize的作用是在主线程中执行一个方法,  
  但为何GiveAnswer可以直接调用呢?????????  
   
  谢谢  
  问题点数:50、回复次数:4Top

1 楼windindance(风舞轻扬·白首为功名)回复于 2002-03-18 22:53:40 得分 20

因为在DELPHI中,子线程不能直接操作VCL.  
  调用Synchronize可以保证不会有线程冲突。  
  直接调用GiveAnswer是可以,但当程序复杂时,会有问题。Top

2 楼weizhi(行者)回复于 2002-03-19 20:16:34 得分 10

呵呵,同意楼上!    
  Synchronize是将方法交由主线程(UI线程)执行的!如果你的线程方法涉及到界面操作,那是一定要用Synchronize函数的,但Delphi并不检测你是否用了,所以你不用也可以编译运行,但,当多个线程同时执行时,多半是要出问题的  
   
  如果你的线程方法没有界面操作,可以不用Synchronize()函数Top

3 楼torble(阿裕)回复于 2002-03-19 20:38:49 得分 10

线程同步问题,Synchronize   喽,或者自己处理同步措施Top

4 楼smhpnuaa(天将降大任于斯人也!)回复于 2002-03-19 21:33:21 得分 10

这可是基础问题啊!多看看书啊!Top

相关问题

  • 请各位VC高手来看看这个线程的问题
  • 多线程 请教各位
  • 各位前辈!!如何将我这个程序改成多线程啊!!!
  • 谢谢各位! 如何杀掉线程
  • 各位帮我看看这个程序,在applet中使用线程,编译通过,运行报错.
  • 主线程与子线程进行通讯的问题,请教各位大虾
  • 我怎样在一个线程中Suspend这个线程
  • 怎么结束不了这个线程?
  • <<<< 这个线程问题 300分。
  • 过来看看这个线程问题

关键词

  • 线程
  • 执行
  • giveanswer
  • ttestthread
  • 调用
  • synchronize
  • 问题
  • 方法
  • procedure

得分解答快速导航

  • 帖主:loader
  • windindance
  • weizhi
  • torble
  • smhpnuaa

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo