ホームページ >バックエンド開発 >C++ >プロセスを繰り返し作成せずに、.NET で複数のコマンドを効率的に実行するにはどうすればよいですか?

プロセスを繰り返し作成せずに、.NET で複数のコマンドを効率的に実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-28 19:44:13557ブラウズ

How Can I Efficiently Execute Multiple Commands in .NET without Repeated Process Creation?

.NET で複数のコマンドを効率的に実行する

.NET 開発では、新しいプロセスを繰り返し作成せずに複数のコマンド ラインを実行することが必要になることがよくあります。 。このアプローチは時間がかかり、非効率的になる可能性があります。

この問題に対処するために、提供されているコード スニペットはプロセス リダイレクトと呼ばれる手法を活用しています。プロセスの標準入力をリダイレクトすることで、毎回新しいシェルを作成することなく、プロセスにコマンドを直接書き込むことができます。

以下の更新された ExecuteCommand メソッドは、この手法を実装しています。

private void ExecuteCommand(string Command, int Timeout, Boolean closeProcess)
{
    Process p = new Process();
    ProcessStartInfo info = new ProcessStartInfo();
    info.FileName = "cmd.exe";
    info.RedirectStandardInput = true;
    info.UseShellExecute = false;

    p.StartInfo = info;
    p.Start();

    using (StreamWriter sw = p.StandardInput)
    {
        if (sw.BaseStream.CanWrite)
        {
            sw.WriteLine(Command);
        }
    }

    p.WaitForExit(Timeout);

    if (closeProcess == true) { p.Close(); }
}

この更新されたメソッドでは、コマンドを「/C {command}」としてプロセス開始情報に渡す代わりに、プロセスの標準入力をリダイレクトし、StreamWriter を使用してコマンドを直接書きます。これにより、複数のプロセスを作成せずに複数のコマンドを実行できます。

コマンド内の「」を処理するには、逐語的な文字列 (先頭に @ を付ける) を使用して、文字をそのままコマンド文字列に含めます。

以上がプロセスを繰り返し作成せずに、.NET で複数のコマンドを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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