鱼C论坛

 找回密码
 立即注册
查看: 2195|回复: 2

求求求求大神帮忙

[复制链接]
发表于 2014-10-5 19:33:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
关于多线程的,我就写了几行代码而已,编译通过,但是只要一触发FOR循环就出错,,,,如果去掉红色框框内的代码就不报错了,为什么呢?
QQ截图20141005193003.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-11-1 05:24:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-31 21:31:38 | 显示全部楼层
楼主可以加上Application.ProcessMessages; 一般用在比较费时的循环中, 它会检查并先处理消息队列中的其他消息,但还不属于多线程
  1. var
  2. i,m:integer;
  3. begin
  4. m:=1;
  5. for i:=0 to 500000 do
  6. begin
  7. lbl1.caption:=IntTostr(strtoint(lbl1.caption)+m);
  8. m:=m+1;
  9. Application.ProcessMessages;
  10. end;
  11. end;
复制代码



也可改为


  1. type
  2.   TMyThread = class(TThread)
  3.   protected
  4.     procedure Execute; override;
  5. end;

  6. var
  7.   Form1: TForm1;

  8. implementation

  9. {$R *.dfm}

  10. procedure TMyThread.Execute;
  11. var
  12.   i,m: Integer;
  13. begin
  14.   FreeOnTerminate := True;
  15.   for i := 0 to 500000 do
  16.   begin
  17.   Form1.lbl1.caption:=IntTostr(strtoint(Form1.lbl1.caption)+m);
  18.   m:=m+1;
  19.   end;
  20. end;

  21. procedure TForm1.Button1Click(Sender: TObject);
  22. begin
  23.   TMyThread.Create(False);
  24. end;
复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 17:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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