我的环境:
操作系统 - Windows7 Pro(32 位)
IDE - RadStudio XE2 Update4
我想知道 Synchronize() 函数。
线程程序中使用了Synchronize()函数。关于在C+ builder中使用Synchronize(),示例如下(见here)
// 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 TMyThreadClass::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
令我感到困惑的是,在某些旧版本的 C++ 构建器(例如 bcb6)中, 使用了 Synchronize()
// Synchronize(UpdateCaption);
函数名前没有“&”;
同样在 delphi 代码中,如 here , 函数名前没有“&”;
// Synchronize(UpdateCaption);
那么,这是在 C++ 构建器中使用 Synchronize() 的正确方法
// Synchronize(UpdateCaption);
或
// Synchronize(&UpdateCaption);
我在实际代码中都尝试过,但工作方式似乎相同。 UpdateCaption 和 &UpdateCaption 是否都返回函数地址?
最佳答案
So, which is the correct way to use Synchronize() in C++ builder
// Synchronize(UpdateCaption);
or
// Synchronize(&UpdateCaption);
它们都有效,但首选 &
。
Do both UpdateCaption and &UpdateCaption return address of functions?
是的。如果在没有为参数列表指定括号的情况下引用函数/方法,则假定为函数/方法的地址。 &
只是让它更明确。
关于c++builder - 有或没有 & 用于在 C++ 构建器中调用 Synchronize(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24377915/