ExitProcess and Application.Termined

Application.Terminate 只是呼叫 PostQuitMessage 這個 Windows API
表明程式準備要結束而已, 它並不會立即中止整個程式, 也不會強迫終止
若有其他程序還在運行, 則程式很可能會發生如你描述的那種情形
Application.Terminate 的詳細說明, 請參照 Delphi 的 Help , 雖然說明並不多

而 ExitProcess , 則是直接且乾淨地終止程式
MSDN 對此有詳細的說明, 請參照:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcekernl/html/_wcesdk_win32_exitprocess.asp

看看底下的例子:

[delphi] view plaincopy
01.procedure TForm1.Button1Click(Sender: TObject);
02.begin
03.    Application.Terminate;
04.end;
05.
06.procedure TForm1.Button2Click(Sender: TObject);
07.var
08.    b:boolean;
09.begin
10.    B:=False;
11.    repeat
12.        Application.ProcessMessages;
13.        Sleep(300);
14.    until B;
15.end;
时间: 2024-10-10 06:51:46

ExitProcess and Application.Termined的相关文章

Top Things to Consider When Troubleshooting Complex Application Issues

http://blogs.msdn.com/b/debuggingtoolbox/archive/2011/10/03/top-things-to-consider-when-troubleshooting-complex-application-issues.aspx 1- For reactive incidents: “Bring the engineer onsite because it is going to be easier to isolate the problem.” Th

教程-Close、Halt、terminate、ExitProcess的区别

Close:1.只关闭本窗体2.当Close是一个主窗体时,程序会退出.3.Close会发生FormClose事件,FormCloseQuery事件4.主窗体close以后程序就Application.Terminate了5.子窗体close以后.没释放,还可以Show出来.6.也是说主窗口的Close方法其实也是调用Application的Terminate来终止程序的. Halt:会发生FormDestory事件,用于强行终止应用程序的执行,返回操作系统(非正常退出方式). Applicat

Delphi Close、Halt、terminate、ExitProcess的区别

Close:1.只关闭本窗体2.当Close是一个主窗体时,程序会退出.3.Close会发生FormClose事件,FormCloseQuery事件4.主窗体close以后程序就Application.Terminate了5.子窗体close以后.没释放,还可以Show出来.6.也是说主窗口的Close方法其实也是调用Application的Terminate来终止程序的. Halt:会发生FormDestory事件,用于强行终止应用程序的执行,返回操作系统(非正常退出方式). Applicat

springboot的application.properties与.yml的区别

现在我们的application.properties文件内容是: [plain] view plain copy server.port=8090 server.session-timeout=30 server.context-path= server.tomcat.max-threads=0 server.tomcat.uri-encoding=UTF-8 spring.datasource.url = jdbc:mysql://localhost:3306/newbirds spring

Catch Application Exceptions in a Windows Forms Application

You need to handle the System.Windows.Forms.Application.ThreadException event for Windows Forms. This article really helped me: http://bytes.com/forum/thread236199.html. Application.ThreadException += new ThreadExceptionEventHandler(MyCommonException

android Application Component研究之Activity(一)

http://blog.csdn.net/windskier/article/details/7096521 终于下定决心写写ActivityManagerService的源码分析的文章了,ActivityManagerService 业务的整个逻辑关系被各种复杂的数据结构包裹着,因此对ActivityManagerService 的分析主要就是对各种数据结构的分析,明白了这些数据结构,理解ActivityManagerService的业务内容就水到渠成了. AMS提供了一个ArrayList

web初学之request,session与application

request (1)request的setAttribute()与getAttribute()方法一般都是成对出现,首先通过setAttribute()方法设置属性与属性值,然后通过getAttribute()方法根据属性获取到与该属性对应的对象值.setAttribute()与getAttribute()方法都是在服务器端内部执行,客户端并不清楚.(注意:getAttribute()之后需要进行向下类型转换,将属性值转换为真正的对象) (2)request的getParameter()方法是

devise登陆页不使用application模版

class ApplicationController < ActionController::Base   layout :layout   private   def layout     # only turn it off for login pages:     is_a?(Devise::SessionsController) ? false : "application"     # or turn layout off for every devise contr

Android Application 类共享全局数据

android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期.因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象.所以通过Application来进行一些,数据传递,数据共享 等,数据缓存等操作,代码如下: package com.example.five; import andro