关于synchronize问题

zl811103 2009-08-27 10:41:42
这个函数是用来在线程中访问vcl对象的,对他的具体用法不是很了解,有谁能够给清楚的解释一下
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
laowang2 2009-09-07
  • 打赏
  • 举报
回复
//---------------------   
  // Important: Methods and properties of objects in VCL can only be
  // used in a method called using Synchronize, for example:
  //
  // Synchronize(UpdateCaption);
  //
  // where UpdateCaption could look like:
  //
  // void __fastcall MyThread::UpdateCaption()
  // {
  // Form1->Caption = “Updated in a thread”;
  // }
  //--------------------
我不懂电脑 2009-09-07
  • 打赏
  • 举报
回复
http://www.d9soft.com/article/261/Article22289_1.htm
lhy 2009-09-07
  • 打赏
  • 举报
回复
Synchronize是用来调用你需要同步的函数的。
Myth_cn 2009-09-06
  • 打赏
  • 举报
回复
C++builder不支持多线程同时访问VCL组件。对于一些具有锁定功能的对象,可以在锁定之后再进行具体操作。另外在TThread中有一个方法叫Synchronize(),他可以让线程的一些方法在主线程中执行。其声明如下:

void __fastcall Synchronize(TThreadMethod Method);

参数Method的类型是TThreadMethod,类型声明如下:

typedef void __fastcall (__closure *TThreadMethod)(void);

Method参数用来传递要在主线程中执行的方法(子线程中的方法)。

如子线程中有一个函数 DisPlayResult要在主线程中执行,可以在子线程的Execute()函数中用以下代码实现:
this->Synchronize(DisPlayResult);
haiandj 2009-09-06
  • 打赏
  • 举报
回复
同步问题
flymoon99 2009-08-27
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20070801/09/b8fab9d3-99a5-43b3-942a-4afc8b891621.html

当个搬运工
子正 2009-08-27
  • 打赏
  • 举报
回复
隐约记得Synchronize()是使用类似SendMessage()的机制实现的.
这样理解起来会简单些吧?

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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