Si j'ai un code tel queLors de l'utilisation de System.Diagnostic Process, vais-je manquer certaines lignes de sortie entre le début du processus et le début de la capture de la sortie?
proc.Start();
string resultOut;
while ((!proc.HasExited && (resultOut = stdOut.ReadLine()) != null))
{
// Do some operation based on resultOut
}
Suis-je responsable de manquer quelques lignes de quand je commence proc lorsque la capture/l'analyse syntaxique commence ou vais attendre? Si ce n'est pas ce que je peux faire?
Non, il est tamponné. Mais manquant la * dernière * ligne (s) serait une préoccupation. –
Je pense que Hans signifie que vous avez un bug dans votre boucle while. Si stdout est mis en mémoire tampon et que le processus se termine, toutes les lignes mises en mémoire non lues peuvent être perdues. Supprimez simplement la vérification redondante pour! Proc.HasExited. ReadLine renvoie null seulement après la fermeture du flux (par un processus sortant) et le vidage de la mémoire tampon. –