From 68b3bfcd3d320aa3b77f4896ed45463774dcdc3d Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Mon, 20 Feb 2017 01:55:20 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D1=80=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=86=D0=B8=D0=BA=D0=BB=D0=B0=20=D0=BE=D0=B6?= =?UTF-8?q?=D0=B8=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D1=86?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B0=20#402?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Library/ProcessContext.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs index 0db1f5b58..fb716f98e 100644 --- a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs +++ b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs @@ -52,6 +52,7 @@ public IValue OutputEncoding /// /// ПотокВыводаТекста. Стандартный поток вывода (stdout) + /// в методе "Завершен" смотрите пример правильной обработки цикла ожидания завершения процесса: /// [ContextProperty("ПотокВывода", "StdOut")] public StdTextReadStream StdOut @@ -71,6 +72,7 @@ public StdTextReadStream StdOut /// /// ПотокВыводаТекста. Стандартный поток вывода ошибок (stderr) + /// в методе "Завершен" смотрите пример правильной обработки цикла ожидания завершения процесса: /// [ContextProperty("ПотокОшибок", "StdErr")] public StdTextReadStream StdErr @@ -104,6 +106,7 @@ public StdTextWriteStream StdIn /// /// Запустить процесс на выполнение. + /// в методе "Завершен" смотрите пример правильной обработки цикла ожидания завершения процесса: /// [ContextMethod("Запустить", "Start")] public void Start() @@ -113,6 +116,24 @@ public void Start() /// /// Флаг указывает, что процесс завершен (или нет) + /// + /// Пример правильной обработки цикла ожидания завершения процесса: + /// + /// Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные ИЛИ Процесс.ПотокОшибок.ЕстьДанные Цикл + /// Если ПериодОпросаВМиллисекундах <> 0 Тогда + /// Приостановить(ПериодОпросаВМиллисекундах); + /// КонецЕсли; + /// + /// ОчереднаяСтрокаВывода = Процесс.ПотокВывода.Прочитать(); + /// ОчереднаяСтрокаОшибок = Процесс.ПотокОшибок.Прочитать(); + /// Если Не ПустаяСтрока(ОчереднаяСтрокаВывода) Тогда + /// Сообщить(ОчереднаяСтрокаВывода, СтатусСообщения.Информация); + /// КонецЕсли; + /// + /// Если Не ПустаяСтрока(ОчереднаяСтрокаОшибок) Тогда + /// Сообщить(ОчереднаяСтрокаОшибок, СтатусСообщения.Важное); + /// КонецЕсли; + /// КонецЦикла; /// [ContextProperty("Завершен","HasExited")] public bool HasExited From 721b6ba6d98c10234062831730e5d5d9c09af7b3 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 21 Feb 2017 09:20:02 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=92=D1=8B=D0=B4=D0=B5=D0=BB=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=81=D0=BF=D0=B5=D1=86.=D1=82=D0=B5=D0=B3=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=20#402?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine.HostedScript/Library/ProcessContext.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs index fb716f98e..6048b26c3 100644 --- a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs +++ b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs @@ -116,7 +116,9 @@ public void Start() /// /// Флаг указывает, что процесс завершен (или нет) + /// /// + /// /// Пример правильной обработки цикла ожидания завершения процесса: /// /// Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные ИЛИ Процесс.ПотокОшибок.ЕстьДанные Цикл @@ -134,7 +136,7 @@ public void Start() /// Сообщить(ОчереднаяСтрокаОшибок, СтатусСообщения.Важное); /// КонецЕсли; /// КонецЦикла; - /// + /// [ContextProperty("Завершен","HasExited")] public bool HasExited { From c3365b905df1f115a43fad36e417efca0ac8e8ee Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 21 Feb 2017 10:03:22 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BB=20"?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C"=20#402?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ScriptEngine.HostedScript/Library/ProcessContext.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs index 6048b26c3..7816ebe1a 100644 --- a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs +++ b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs @@ -120,6 +120,8 @@ public void Start() /// /// /// Пример правильной обработки цикла ожидания завершения процесса: + /// Процесс не завершается, пока поток stderr открыт для чтения + /// Он висит в процессах и ждет, пока его освободят от текста в stderr /// /// Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные ИЛИ Процесс.ПотокОшибок.ЕстьДанные Цикл /// Если ПериодОпросаВМиллисекундах <> 0 Тогда From ebb254ed26f4affe3bc9a395f78b77adcb2ff54c Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 23 Feb 2017 12:10:19 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=84=D0=BE=D1=80=D0=BC=D1=83=D0=BB=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B7=D0=B0=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5?= =?UTF-8?q?=D1=81=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /// Процесс не завершается, пока любоой из потоков (stdout, stderr) открыт для чтения. /// Процесс висит и ждет, пока его освободят от текста в обоих потоках. --- src/ScriptEngine.HostedScript/Library/ProcessContext.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs index 7816ebe1a..73238ce4c 100644 --- a/src/ScriptEngine.HostedScript/Library/ProcessContext.cs +++ b/src/ScriptEngine.HostedScript/Library/ProcessContext.cs @@ -120,8 +120,8 @@ public void Start() /// /// /// Пример правильной обработки цикла ожидания завершения процесса: - /// Процесс не завершается, пока поток stderr открыт для чтения - /// Он висит в процессах и ждет, пока его освободят от текста в stderr + /// Процесс не завершается, пока любоой из потоков (stdout, stderr) открыт для чтения. + /// Процесс висит и ждет, пока его освободят от текста в обоих потоках. /// /// Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные ИЛИ Процесс.ПотокОшибок.ЕстьДанные Цикл /// Если ПериодОпросаВМиллисекундах <> 0 Тогда