<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=225777&amp;view=findpost&amp;p=1884935</guid>
        <pubDate>Fri, 29 Feb 2008 10:03:31 +0000</pubDate>
        <title>Перезапуск текущего процесса</title>
        <link>https://forum.sources.ru/index.php?showtopic=225777&amp;view=findpost&amp;p=1884935</link>
        <description><![CDATA[--Ins--: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Прокоментируйте, пожалуйста, что значит строка:<br>
{Halt}PostQuitMessage(0)</div></div><br>
Это завершение работы программы. Вообще, способов много, вот основные:<br>
<br>
1. ExitProcess или TerminateProcess самое &quot;грубое&quot; завершение. Процесс немедленно завершается, никакая финализация не производится, никаких возможностей прервать завершение процесса либо сохранить данные после вызова нет.<br>
2. Halt - чуть более мягкое завершение. Перед завершением выполняется финализационный код юнитов, также вызывается ExitProc.<br>
3. PostQuitMessage - еще более мягкое. Сообщение о завершении кладется в очередь, но выполнение кода не прерывается, он продолжает выполнение с того же места. Далее цикл выборки сообщений извлекает его (но перед этим будут обработаны все остальные сообщения из очереди, кроме очереди виртуального ввода, сообщений WM_PAINT и WM_TIMER из-за их низкого приоритета), и в обработчике этого сообщения вызывается Halt<br>
4. Application.Terminate - еще мягче. Вызывается CallTerminateProcs, затем - PostQuitMessage. При этом есть возможность прервать завершение процесса из одной из TerminateProcs, вернув в ней False, а также выполнить некоторые действия.<br>
5. Закрытие главной формы - еще мягче. Есть возможность прервать закрытие из обработчика OnCloseQuery и выполнить очистку/сохранение результатов. Если закрытие разрешено - вызывается OnClose и Application.Terminate]]></description>
        <author>--Ins--</author>
        <category>Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	