2010-11-09 4 views

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; 
    } 
+0

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)? –

+0

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. –

+0

Vous pouvez supprimer l'ancien 'process_OutputDataReceived'. Voir mon édition pour savoir comment faire plus d'une chose à l'intérieur du gestionnaire. –

Questions connexes