Difference between revisions of "Mutex.TerminateProcess"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
(Created page with "{{infobox function |name=TerminateProcess |object=Семафор |caption=Работа с по...")
 
m (1 revision imported)
 
(No difference)

Latest revision as of 11:46, 9 August 2022

  TerminateProcess (Работа с подчиненными процессами)
Объект:Семафор
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в число, неверный объект
Визуальность:Нет

Функция безусловно завершает выполнение подчиненного процесса, с ожиданием окончания завершения, если необходимо. Иногда, даже с ожиданием, в зависимости от типа системы, сразу после выполнения функции, вызов IsProcessActive может возвращать 1, но большинство процессов коммуникации на этот момент уже выполнено и процесс скоро будет остановлен.

Синтаксис

Mutex.TerminateProcess(<Без ожидания (INT)>=0)

Аргументы

  • <Без ожидания (INT)> - (необязательный аргумент) Может принимать следующие значения:
    • 0 (по умолчанию) -- ожидать полного завершения процесса.
    • 1 -- не ожидать завершения процесса, только передать ему флаг завершения.

Примеры

  Function ИсполнитьВДругомПроцессе(спДанные,ByRef Переменная,ByRef Переменная2=0)
    спДанные["Значение"]:=10;
    Переменная:=20;
    Переменная2:=30;
    Result:=40;
  EndFunction

аПроцесс:=Mutex.InitializeSeparateProcess();

спДанные:=List.Create();
спДанные["Значение"]:=1;
Переменная:=2;
аПроцесс.InterProcessExecuteFunction("ИсполнитьВДругомПроцессе",спДанные,Переменная);
//Будет выведено 1
Message("Процесс активен: "+аПроцесс.IsProcessActive);
//Завершим процесс
аПроцесс.TerminateProcess(1);
//Будет выведено 0 (обычно)
Message("Процесс активен: "+аПроцесс.IsProcessActive);
//Вызов функции создаст исключение
аПроцесс.InterProcessExecuteFunction("ИсполнитьВДругомПроцессе",спДанные,Переменная);