Как создать долгосрочное соединение между консольным приложением go и C#C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать долгосрочное соединение между консольным приложением go и C#

Сообщение Anonymous »


У меня есть довольно простое консольное приложение C#. Это будет процесс добавления переменных double, переданных из части go.

двойная сумма = 0; логический флаг = правда; while(flag) { // выход при ошибке преобразования вар стр = Console.ReadLine(); // запросить строку двойное сложение; флаг = double.TryParse(str, out addend); // конвертируем в двойной сумма += флаг? добавить: 0; //добавляем успех Console.WriteLine(сумма); } вернуть 0; И моя часть тоже проста. Он создает процесс с предыдущим консольным приложением, отправляет ему строки и считывает результаты.

основной пакет Импортировать ( "ФМТ" "йо" "бревно" "ОС/exec" ) функция main() { cmd := exec.Command("%path to app%\\ConsoleApp.exe") // процесс, который будет запущен stdout, err := cmd.StdoutPipe() // используем стандартный выходной канал если ошибка != ноль { log.Fatal(ошибка) } stdin, err := cmd.StdinPipe() // используем std в канале если ошибка != ноль { log.Fatal(ошибка) } если ошибка := cmd.Start(); ошибка != ноль { // начало log.Fatal(ошибка) } для истинного { строка вар w1 _, err := fmt.Scanln(&w1) // читаем строку если ошибка != ноль { журнал.Фатальный() } иди в функцию() { io.WriteString(stdin, w1) // передаем его в консольное приложение }() read, err := io.ReadAll(stdout) // результат чтения fmt.Println(читать) если ошибка != ноль { журнал.Фатальный() } } } Я запускаю отладку процесса консольного приложения (он появляется в диспетчере задач, RMC - Отладка), но появляются ошибки символов, поэтому я даже не могу понять, получило ли мое приложение строку или нет.

Это только половина моих проблем. Я думаю, что один или два раза мое консольное приложение получало строку (я имею в виду в предыдущие разы), но только первую, потому что канал закрывался после передачи/копирования из него. Итак, как я могу это контролировать? Я хочу выполнить несколько транзакций, писать и читать и закрывать каналы только тогда, когда мне это нужно.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»