Application.Terminate 和 ExitProcess

来源:互联网 发布:知乎越来越垃圾 编辑:程序博客网 时间:2024/06/06 05:36
 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


看看底下的例子:


procedure TForm1.Button1Click(Sender: TObject);begin    Application.Terminate;end;procedure TForm1.Button2Click(Sender: TObject);var    b:boolean;begin    B:=False;    repeat        Application.ProcessMessages;        Sleep(300);    until B;end;



先按下 Button2, 啟動一個無窮迴圈, 當按下 Button1 時, 程式就掛了
但若 Button1 的 forbidden 裏頭執行的是 ExitProcess(0);, 則程式就可以完全結束
原创粉丝点击