在Delphi XE8的FormCreate下,我使用以下语法来应用AntiFreeze函数:

if Assigned(AntiFreeze) then FreeAndNil(AntiFreeze);

// or sometimes: AntiFreeze := TIdAntiFreeze.Create(NIL);

我试图在C++ Builder XE8中实现它,如下所示:
   if (AntiFreeze->Assign()) {
     AntiFreeze->Active;
     AntiFreeze->Free();
   }

但这是行不通的。我需要帮助您告诉我正确的方法。

非常感谢..

最佳答案

Delphi代码将释放在设计时已放置在窗体上的TIdAntiFreeze组件。如果您不希望使用该组件,请不要将其放在表单上。

话虽如此,Delphi代码的C++等效项是:

if (AntiFreeze) FreeAndNil(AntiFreeze);

// or sometimes: AntiFreeze = new TIdAntiFreeze(NULL);

话虽如此,您实际上应该努力不使用TIdAntiFreeze。在主UI线程最多会阻塞几秒钟以上的主UI线程上下文中,您不应执行任何操作。大多数Indy操作更适合用于工作线程而不是主UI线程。 TIdAntiFreeze仅在Indy操作阻止主线程时通过泵送主消息循环在主UI线程中起作用。

关于c++ - TIdAntiFreeze实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31467830/

10-11 01:10