J'ai une méthode qui crée un processus appelant une application console. Mon problème est, comment puis-je renvoyer les données de process_OutputDataReceived à myProcess? Je ne peux pas utiliser singleton car il existe des possibilités que ce processus sera exécuté dans plusieurs threads.Envoyer les données capturées à partir de OutputDataReceived à l'appelant
1
A
Répondre
6
Vous n'avez pas besoin d'une méthode distincte pour le gestionnaire OutputDataReceived
; vous pouvez utiliser une méthode anonyme pour définir la variable results
directement:
process.OutputDataReceived += (sender, e) => results = e.Data;
(? Aussi, devrait results
être string
ou double
)
Edit: Quelques alternatives lorsque vous devez faire plus travailler dans le gestionnaire:
process.OutputDataReceived +=
(sender, e) =>
{
string stringResults = e.Data;
// do some work on stringResults...
results = stringResults;
}
// or
process.OutputDataReceived +=
delegate(object sender, DataReceivedEventArgs e)
{
string stringResults = e.Data;
// do some work on stringResults...
results = stringResults;
}
Questions connexes
- 1. Comment les données audio envoyées aux enceintes peuvent-elles être capturées à partir d'une application?
- 2. Envoyer des données à partir de Jquery Dialog et MVC
- 3. Django: informations capturées à partir des URL disponibles dans les fichiers modèles?
- 4. envoyer des données audio à javascript
- 5. Envoyer un message à l'application .NET à partir de javascript?
- 6. comment envoyer des données json à asmx (à partir de aspx) en utilisant jquery?
- 7. Les requêtes paramétrables peuvent-elles être entièrement capturées à l'aide de DBCC INPUTBUFFER?
- 8. Extrait toutes les données à partir d'une base de données
- 9. Comment envoyer un rapport pdf à partir de JaserReports/iReport
- 10. Envoyer plusieurs données à la base de données au printemps
- 11. Comment envoyer des données à partir d'une fenêtre ouverte à son ouvreur dans WPF
- 12. Envoyer les données mises à jour au fil d'arrière-plan
- 13. Ajax demande délimiteurs pour les données à envoyer
- 14. Comment envoyer des données à un client particulier à partir du serveur?
- 15. envoyer des données à un ForeignKey manuellement?
- 16. Envoyer des données à JSF page d'accueil
- 17. datepicker envoyer des données à la base de données
- 18. Envoyer un e-mail anonyme à partir de MFMailComposeViewController
- 19. envoyer des données à des clients à partir d'un serveur en vb
- 20. Envoyer un e-mail à partir de ASP.NET MVC
- 21. envoyer des données à un script PHP
- 22. ASP.NET attraper les contrôles à partir de html généré à partir de la base de données
- 23. Envoyer des données à mastic dans powershell
- 24. Envoyer vers/Destinataire de messagerie à partir de WSH
- 25. envoyer des valeurs à partir de la ligne de commande?
- 26. envoyer l'intention de diffusion à partir de runnable
- 27. Envoyer les mêmes courriels à de nombreuses adresses
- 28. envoyer un e-mail à partir de l'adresse IP spécifique
- 29. Envoyer un e-mail retardé à partir de l'appareil
- 30. envoyer un courriel à partir du simulateur de BlackBerry
merci! Je pensais que quelqu'un me dirait qu'il n'y a pas de solution. Voici ce que j'ajoute process.OutputDataReceived + = (expéditeur, e) => results = Convert.ToDouble (e.Data); devrais-je supprimer process.OutputDataReceived + = new DataReceivedEventHandler (process_OutputDataReceived); . mais qu'est-ce que je fais au vide static process_OutputDataReceived (expéditeur d'objet, DataReceivedEventArgs e)? –
Je pense qu'il y a un malentendu (ma faute quand même). les résultats ne sont pas simplement une sortie console. il y a plusieurs lignes de sortie de la console. De plus, j'ai besoin de faire un peu de filtrage avant d'obtenir les résultats. c'est possible? Merci. –
Vous pouvez supprimer l'ancien 'process_OutputDataReceived'. Voir mon édition pour savoir comment faire plus d'une chose à l'intérieur du gestionnaire. –