我也在这里描述了一个问题: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应用程序中的所有线程,然后终止进程?
发布于 2010-04-21 23:00:57
Application->Terminate()不会立即关闭应用程序,它只表示要关闭应用程序。
终止调用Windows函数来执行应用程序的有序关闭。终止不是立即的.
在函数中调用Application->ProcessMessages(),然后检查Application->Terminated属性是否为true。
用于使用计算密集型循环的应用程序,定期调用ProcessMessages,并检查终止以确定是否中止计算并允许应用程序终止。
例如:
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
} https://stackoverflow.com/questions/2685625
复制相似问题