Перед началом позвольте мне сказать, что я уже пытался использовать вариант, который описан там .
Проблема в следующем, у меня есть очень простая программа в C, которая просто пишет в вывод и чтение ввода.
#include <stdio.h>
#include <stdint.h>
int main()
{
int size;
printf("Enter size: ");
scanf("%d", &size);
printf("\n size = %d", size);
return 0;
}
Вторая программа написана в C#. Эта программа должна начинаться сначала с другого процесса и получать ввод и вывод. Но программа зависает при попытке прочитать ввод. При первом звонке Console.Write(process.StandardOutput.ReadLine());
static void Main(string[] args)
{
try
{
var fName = "test.exe";
var pci = new ProcessStartInfo
{
FileName = fName,
Arguments = "/c DIR",
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true,
};
using (var process = Process.Start(pci))
{
Console.WriteLine(process.ProcessName);
Console.Write(process.StandardOutput.ReadLine());
process.StandardInput.WriteLine("4");
Console.Write(process.StandardOutput.ReadLine());
process.WaitForExit(1000);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
Кто-нибудь знает, почему он завис? Или где посмотреть?
PS с asny c проблема с чтением та же