Mutex.TerminateProcess
| 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("ИсполнитьВДругомПроцессе",спДанные,Переменная);