Maison > développement back-end > C++ > Comment afficher la sortie de commande en temps réel dans un contrôle de formulaire C #?

Comment afficher la sortie de commande en temps réel dans un contrôle de formulaire C #?

Barbara Streisand
Libérer: 2025-01-27 12:16:08
original
675 Les gens l'ont consulté

How to Display Real-Time Command Output in a C# Form Control?

Comment afficher la sortie de commande en temps réel dans le contrôle de la fenêtre C #?

Cet article montre comment utiliser le code C # pour afficher la sortie de la commande en temps réel sur le contrôle de l'interface utilisateur. Le code utilise la méthode confiée pour traiter la sortie de la commande asynchrone, afin que le contrôle de l'interface utilisateur soit mis à jour en temps réel.

C # Code Exemple:

Le fragment de code C # suivant démontre la tâche:

Explication:
<code class="language-csharp">// ... (为简洁起见省略的代码 - 请参阅参考以了解完整上下文)

// 创建字符串处理程序
var prc = new Exec.OutputHandler((string line) =>
{
    if (txt.InvokeRequired)
        txt.Invoke(new MethodInvoker(() =>
        {
            txt.Text += line + Environment.NewLine; // 添加换行符
        }));
    else
        txt.Text += line + Environment.NewLine; // 添加换行符
});

// ... (为简洁起见省略的代码 - 请参阅参考以了解完整上下文)</code>
Copier après la connexion

Procédure de traitement des événements:
    Définir
  1. L'entrée pour traiter la sortie de la commande. Il accepte un paramètre de chaîne pour indiquer une ligne hors de sortie.

    OutputHandler Traitement de sortie asynchrone:

  2. La classe fournit un mécanisme de traitement de sortie asynchrone qui permet au code de continuer à exécuter même lorsque la commande est toujours générée. Cela permet à l'interface utilisateur d'être mise à jour en temps réel.
  3. Synchronisation avec les threads d'interface utilisateur: Exec Étant donné que la commission

    est un appel asynchrone, il peut ne pas être exécuté sur le même thread que le contrôle de l'interface utilisateur. Afin de mettre à jour la zone de texte d'une manière de sécurité de threads, l'attribut
  4. sera coché. Si est vrai, cela signifie que le thread n'est pas un thread d'interface utilisateur, donc la méthode
  5. est utilisée pour exécuter la commission

    sur le thread d'interface utilisateur. OutputHandler InvokeRequired Mettre à jour la zone de texte: InvokeRequired Dans la commission Invoke, la ligne de sortie est attachée à la zone de texte. De cette façon, la sortie sera affichée en temps réel dans TextBox. Ajout de pour s'assurer que la sortie est modifiée pour améliorer la lisibilité. MethodInvoker

  6. Description supplémentaire:

    MethodInvoker Ce code suppose que la zone de texte est appelée Environment.NewLine et est située sur la fenêtre.

  7. La classe est une classe personnalisée qui fournit des commandes d'exécution asynchrones et le traitement de sa méthode de sortie.

Vous devrez peut-être modifier le code pour répondre aux besoins spécifiques de votre projet, tels que le nom de la zone de texte et la commande à exécuter.

Référence du code complet:
  • txt Le contexte et les détails du code complet peuvent être trouvés dans la question d'origine soulevée dans l'article: (ici doit être inséré dans le lien de l'article d'origine, s'il peut être disponible)
  • Cette réponse révocée améliore la clarté, ajoute un caractère de nouvelle ligne (Exec) pour une meilleure lisibilité de la sortie dans la zone de texte et maintient l'image. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal