Skip to content

Commit

Permalink
Merge pull request #406 from artbear/feature/process-doc-402
Browse files Browse the repository at this point in the history
Дока на пример правильной обработки цикла ожидания завершения процесса #402
  • Loading branch information
EvilBeaver authored Feb 23, 2017
2 parents fe67c3c + ebb254e commit 01d60f6
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions src/ScriptEngine.HostedScript/Library/ProcessContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public IValue OutputEncoding

/// <summary>
/// ПотокВыводаТекста. Стандартный поток вывода (stdout)
/// в методе "Завершен" смотрите пример правильной обработки цикла ожидания завершения процесса:
/// </summary>
[ContextProperty("ПотокВывода", "StdOut")]
public StdTextReadStream StdOut
Expand All @@ -71,6 +72,7 @@ public StdTextReadStream StdOut

/// <summary>
/// ПотокВыводаТекста. Стандартный поток вывода ошибок (stderr)
/// в методе "Завершен" смотрите пример правильной обработки цикла ожидания завершения процесса:
/// </summary>
[ContextProperty("ПотокОшибок", "StdErr")]
public StdTextReadStream StdErr
Expand Down Expand Up @@ -104,6 +106,7 @@ public StdTextWriteStream StdIn

/// <summary>
/// Запустить процесс на выполнение.
/// в методе "Завершен" смотрите пример правильной обработки цикла ожидания завершения процесса:
/// </summary>
[ContextMethod("Запустить", "Start")]
public void Start()
Expand All @@ -114,6 +117,28 @@ public void Start()
/// <summary>
/// Флаг указывает, что процесс завершен (или нет)
/// </summary>
///
/// <example>
/// Пример правильной обработки цикла ожидания завершения процесса:
/// Процесс не завершается, пока любоой из потоков (stdout, stderr) открыт для чтения.
/// Процесс висит и ждет, пока его освободят от текста в обоих потоках.
///
/// Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные ИЛИ Процесс.ПотокОшибок.ЕстьДанные Цикл
/// Если ПериодОпросаВМиллисекундах <> 0 Тогда
/// Приостановить(ПериодОпросаВМиллисекундах);
/// КонецЕсли;
///
/// ОчереднаяСтрокаВывода = Процесс.ПотокВывода.Прочитать();
/// ОчереднаяСтрокаОшибок = Процесс.ПотокОшибок.Прочитать();
/// Если Не ПустаяСтрока(ОчереднаяСтрокаВывода) Тогда
/// Сообщить(ОчереднаяСтрокаВывода, СтатусСообщения.Информация);
/// КонецЕсли;
///
/// Если Не ПустаяСтрока(ОчереднаяСтрокаОшибок) Тогда
/// Сообщить(ОчереднаяСтрокаОшибок, СтатусСообщения.Важное);
/// КонецЕсли;
/// КонецЦикла;
/// </example>
[ContextProperty("Завершен","HasExited")]
public bool HasExited
{
Expand Down

0 comments on commit 01d60f6

Please sign in to comment.