J'ai une application basée sur la console. Je l'exécute à partir de C# silencieusement en utilisant Rediriger la sortie standard et en le faisant de manière synchrone, ce qui fonctionne bien. Maintenant, je veux le faire de manière asynchrone, ce qui donne la sortie comme la manière de synchronisation. i.e L'événement OutPutDataRecieved est déclenché, mais seulement après la fin de l'application de la console (exe). L'événement OutputDataRecieved est déclenché pour chaque ligne après la fin, pas instantanément dès qu'il reçoit une ligne en sortie.Lecture de StdOut Asynch à partir d'une application de console c
Le code pour asynch fonctionne pour CMD.exe etc, donc, je suis sûr que son application basée sur c ayant un problème de sortie. FYI: La sortie dans la console c est effectuée en utilisant printf. Basé sur mes résultats: Je pense que l'application de console c ne donne pas de sortie/écriture à stdout jusqu'à ce qu'il termine son exécution. J'ai essayé de mettre le tampon à zéro ou de le rincer après chaque printf mais aucun ne fonctionne.
Des trucs ??
Vous vous souciez de publier le bit pertinent de votre code C#? –
Avez-vous la source pour les applications 'C' et C#? Cela aiderait peut-être si vous montriez les parties pertinentes. – pmg
Lorsque vous dites que vous avez défini le tampon sur null, utilisez-vous la fonction setvbuf? –