Добрый день. Вопрос в следующем: Есть программа на WPF на C# и есть необходимость запустить из нее другую программу на Python в асинхронном режиме. Как в процессе выполнения 2ой программы, получать из нее промежуточные значения в коде на C# 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
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости