ホームページ >バックエンド開発 >C++ >C#フォームコントロールにリアルタイムコマンド出力を表示する方法は?

C#フォームコントロールにリアルタイムコマンド出力を表示する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-27 12:16:08728ブラウズ

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

C#ウィンドウコントロールでコマンド出力をリアルタイムで表示する方法は?

この記事では、C#コードを使用してコマンド出力をリアルタイムでユーザーインターフェイスコントロールに表示する方法を示しています。コードは、委任された方法を使用して、コマンドの非同期の出力を処理して、ユーザーインターフェイスコントロールがリアルタイムで更新されるようにします。

c#コード例:

次のC#コードフラグメントは、タスクを示しています:

説明:
<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>

イベント処理手順:
    コマンドの出力を処理するための
  1. 契約を定義します。出力からの線を示す文字列パラメーターを受け入れます。

    OutputHandler非同期出力処理:

  2. クラスは、コマンドがまだ生成されていてもコードを実行し続けることができる非同期出力処理メカニズムを提供します。これにより、ユーザーインターフェイスをリアルタイムで更新できます。
  3. UIスレッドとの同期:Exec

    委員会は非同期呼び出しであるため、UIコントロールと同じスレッドで実行されない場合があります。テキストボックスをスレッドセキュリティの方法で更新するために、
  4. 属性がチェックされます。 が真である場合、スレッドがUIスレッドではないことを意味するため、
  5. メソッドを使用してUIスレッドで

    委員会を実行します。 OutputHandler InvokeRequiredテキストボックスの更新:InvokeRequiredInvokeコミッションでは、出力行がテキストボックスに添付されています。このようにして、出力はテキストボックスにリアルタイムで表示されます。 読みやすさを向上させるために出力が変更されるようにを追加しました。 MethodInvoker

  6. 追加の説明:

    このコードは、テキストボックスがMethodInvokerと呼ばれ、ウィンドウにあると想定しています。 Environment.NewLine

    クラスは、非同期実行コマンドを提供し、その出力方法を処理するカスタムクラスです。
テキストボックス名や実行するコマンドなど、プロジェクトの特定のニーズに合わせてコードを変更する必要がある場合があります。

完全なコードリファレンス:

  • 完全なコードのコンテキストと詳細は、記事で提起された元の質問に記載されています。(ここでは、元の記事リンクに挿入する必要があります。 txtこの復活は、テキストボックスの出力のより良い読みやすさを高めるために、明確さを改善し、操作の非同期性を強調します。 .

以上がC#フォームコントロールにリアルタイムコマンド出力を表示する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。