Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: fortran1986 28. 10. 2024, 23:27:27
-
Snažím sa spustiť Python kód z .NET 8 Windows aplikácie v bežiacom kontajneri (linuxovom, kde mám interpreter Pythonu). Python kód spustím. Lenže nedokážem prečítať výstup z MultiplexedStreamu (asynchrónny zápis do MultiplexedStreamu funguje). Konkrétne aplikácia prestane reagovať na mieste, kde volám metódu:
multiplexedStream.ReadOutputToEndAsync(CancellationToken.None)
Čo s tým? Nemal by som na čítanie výstupu použiť inú read metódu ako ReadOutputToEndAsync?
Pozn: na docker sa pripájam cez npipe.
-
Problém bych viděl v tom použití ReadOutputToEndAsync. Evidentně čeká na konec streamu, ale ten nepřichází vůbec nebo není v očekávaném formátu.
-
Mozna pomuze se mrknout do zdrojaku:
https://github.com/dotnet/Docker.DotNet/blob/master/src/Docker.DotNet/MultiplexedStream.cs
zbezne bych rekl, ze je to tak, jak rikal kolega vyse:
var result = await ReadOutputAsync(buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false);
if (result.EOF)
{
return;
}
-
Ahojte ďakujem vám za dobré pointy.