起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: 李涛

多线程执行不了**

[复制链接]
 楼主| 发表于 2007-7-9 16:26:13 | 显示全部楼层
我以前在DELPHI中的多线程程序都没事
回复 支持 反对

使用道具 举报

发表于 2007-7-9 16:34:21 | 显示全部楼层
关于多线程,请楼主参考 http://bbs.justep.com/forum.php? ... p;highlight=tthread
这里我给了例子的
回复 支持 反对

使用道具 举报

发表于 2007-7-9 16:38:08 | 显示全部楼层
请楼主研究一下上面的连接
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-9 17:05:42 | 显示全部楼层
TMyThread = Class(TThread)
  public
    Context:TContext;
  protected
    procedure Execute; override;
  end;

实现:
procedure TMyThread.Execute;
var frm :TXQSFXMCT;
begin
  frm := TXQSFXMCT.Create(Context);
  Self.Terminate;
end;

procedure TMZHJSFCT.BizFormCreate(Sender: TObject);
begin
mythread :=TMyThread.Create(True);
mythread.Context :=Self.Context;
mythread.Resum();
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-9 17:11:36 | 显示全部楼层
耗时操作在: frm := TXQSFXMCT.Create(Context);
回复 支持 反对

使用道具 举报

发表于 2007-7-10 09:42:28 | 显示全部楼层
楼主,你先研究一下12楼给你的链接,里面有例子
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-10 11:12:02 | 显示全部楼层
不用研究了,主要就是要在需要循环的地方加入application.ProcessMessages就行了,看来还是和一般的开发工具有不同呀,我想同的代码在DELPHI中就不需要加入application.ProcessMessages
回复 支持 反对

使用道具 举报

发表于 2007-7-10 11:19:43 | 显示全部楼层
恭喜!
回复 支持 反对

使用道具 举报

发表于 2007-7-10 12:06:18 | 显示全部楼层
不对吧,在线程中应该不需要调用application.ProcessMessages的,非多线程的程序才需要这样调用的
回复 支持 反对

使用道具 举报

发表于 2007-7-10 15:16:04 | 显示全部楼层
线程里面不能操作VCL可视控件相关的逻辑,否则会死
对于需要操作的,采用同步方法执行
Thread.Synchronize
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-12 18:08 , Processed in 0.035159 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表