2010-05-09 10 views

Répondre

1

par défaut standardOutput est tamponnées, ce qui signifie que vous obtiendrez probablement des messages entiers de l'autre extrémité (ou plusieurs messages entiers). Mais ce n'est pas vraiment garanti, surtout parce que le processus que vous lisez pourrait avoir changé la mise en mémoire tampon de StandardOutput.

Une terminaison de message serait la meilleure façon de comprendre. Bien que généralement avec des processus communiquant sur StandardOutput tout soit basé sur une ligne, utiliser simplement les nouvelles lignes comme terminateurs de messages est probablement l'endroit le plus simple et le plus commun pour commencer.

0

reader.ReadToEnd() ne retourne pas jusqu'à ce que le processus se termine, donc après que vous appelez doit voir tout ce qu'il a écrit à stdout. Tamponnage ne toucherait la rapidité avec laquelle il obtient de l'autre programme dans la mémoire tampon de votre lecteur, mais votre code ne peut pas faire la différence (au moins sur ce fil) parce qu'il attend toujours ReadToEnd() pour revenir.