Доступ к программе на Python из программы на C#

194
02 марта 2018, 14:09

Добрый день. Вопрос в следующем: Есть программа на WPF на C# и есть необходимость запустить из нее другую программу на Python в асинхронном режиме. Как в процессе выполнения 2ой программы, получать из нее промежуточные значения в коде на C# 1ой программы. Как научить их обмениваться данными, какие есть средства для этого?

Answer 1

По своему опыту могу посоветовать использовать такие настройки для запуска процесса, если у Вас модуль на Python делает вспомогательную логику, например модуль на Python распознает рукописные цифры - то можно просто в Python вернуть результат распознавания через print и в C# получить результат как output созданного процесса:

ProcessStartInfo start = new ProcessStartInfo
{
  FileName = PyPath,
  Arguments = args,
  UseShellExecute = false,
  RedirectStandardOutput = true
};

потом

using (StreamReader stream = process.StandardOutput)
{
  var output = stream.ReadToEnd(); // тут будет результат того что напечатал в консоль модуль на Python.

Для более гибкого взаимодействия можно воспользоватся IronPython.

Ну и конечно же ещё масса способов IPC - Wiki - IPC

READ ALSO
Функция черчения линии по точкам C#

Функция черчения линии по точкам C#

Была создана функция для черчения линий между двумя выбранными вручную точками из девяти существующих, но проблема в том, что после рисования...

181
Изменение кодировки текста

Изменение кодировки текста

Имеется конструкция, которая производит чтение данных либо с текстового файла, либо с клавиатурыВозникло два вопроса:

193
C#. Как заставить форму перемещаться удалив у нее рамку?

C#. Как заставить форму перемещаться удалив у нее рамку?

Добрый деньПодскажите как заставить форму перемещаться удалив у нее рамку? Тоесть у меня у MainForm выключен ControlBox и BorderStyle - None И форма не двигается...

174
Запуск и работы формы только при запущенном процессе

Запуск и работы формы только при запущенном процессе

Как можно сделать так, чтобы форма запускалась и работала только при запущенном процессе?

192