关于多线程,大家看看这个网站上说的对不对?

pcfans007 2005-08-25 02:11:52
转载于:月光软件站

这里需要说明的是,由于线程单元需要调用Form的Edit控件(对象),可以采用两种方法:

1) 在线程单元定义一个TEdit对象,例如

edit4:Tedit;

在Execute过程内直接引用

但在Unit1中一定要在FormCreate过程里作一个赋值:

procedure TForm1.FormCreate(Sender: TObject);
begin
thread1.edit4:=edit1;
end;

这样,就把第一线程的edit4与Form上的edit1联系来。

2)在第二个线程中首先声明调用Unti1,也就是要加上

Uses Unit1;

这样就可以在该线程单元直接调用主Form的控件了,比如在Unit3中可以写:

form1.edit2.text:=inttostr(i)

了解了这些基本规则,就可以写出比较复杂的多线程程序了。
还有一点要说明的,默认生成的线程单元,调用的单元只有一个:
...全文
167 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿呆_ 2005-08-26
  • 打赏
  • 举报
回复
Edit控件设置Text属性本身就是线程安全的呵呵, 因为它设置Text用的是WM_SETTEXT消息. 即使你在线程中调用它也是在主线程中实现的,不存在线程冲突. 不安全的是设置Font属性
xianggang101 2005-08-25
  • 打赏
  • 举报
回复
我试过都是对的!我一般用第二种!!
linzhengqun 2005-08-25
  • 打赏
  • 举报
回复
我的天,
看一看Win32多线程程序设计吧。
pcfans007 2005-08-25
  • 打赏
  • 举报
回复
第一个,我知道肯定正确,第二个不知道,试了一例子现在还是编译不通过,所以还不知道能不能
ztenv 2005-08-25
  • 打赏
  • 举报
回复
可能有一定的道理吧,以前真没有注意过,不过和C++中的东东差不多感觉,试试不就行了?但是对VCL操作在多线程是不太安全,

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧