首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C builder RAD 2010 RTL/VCL Application->Terminate()函数不终止应用程序

C builder RAD 2010 RTL/VCL Application->Terminate()函数不终止应用程序
EN

Stack Overflow用户
提问于 2010-04-21 18:39:18
回答 1查看 3.4K关注 0票数 4

我也在这里描述了一个问题:http://www.delphigroups.info/3/9/106748.html

我已经尝试了几乎所有形式的放置应用程序->Terminate() func在代码中的任何地方,遵循而不是‘返回0','ExitProcess(0)','ExitThread(0)',退出(0)。没有工作变体关闭应用程序。相反,Application->Terminate()语句后的代码正在运行。

我有两个或更多的线程在应用程序。我尝试在执行后创建的线程和主线程中调用terminate。

而且,这与CodeGuard / madExcept无关(据我所能想象)(我已经关闭和打开它,没有任何效果)。CodeGuard转弯也没有成功。

唯一的工作代码变体是将Application->Terminate()调用到任何表单按钮的OnClick处理程序。但这不符合我的需要。我要在任何地方终止。

如何终止C++ Builder2010应用程序中的所有线程,然后终止进程?

EN

回答 1

Stack Overflow用户

发布于 2010-04-21 23:00:57

Application->Terminate()不会立即关闭应用程序,它只表示要关闭应用程序。

终止调用Windows函数来执行应用程序的有序关闭。终止不是立即的.

在函数中调用Application->ProcessMessages(),然后检查Application->Terminated属性是否为true。

用于使用计算密集型循环的应用程序,定期调用ProcessMessages,并检查终止以确定是否中止计算并允许应用程序终止。

例如:

代码语言:javascript
复制
void Calc()
{
  for (int x = 0; x < 1000000; ++x)
  {
    // perform complex calculation

    // check if need to exit
    Application->ProcessMessages();
    if (Application->Terminated)
    {
      break;
    } // end if
  } // end for

  // clean up
} 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2685625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档