.NET を使用して新しいプロセスを作成せずに複数のコマンドを実行する
コマンドごとに新しいプロセスを作成せずに複数のコマンドを効率的に実行するには、次のようにします。標準入力をリダイレクトし、StreamWriter を利用して標準入力に書き込みます。コードを変更する方法は次のとおりです:
using System.Diagnostics; namespace ExecuteMultipleCommands { class Program { static void Main(string[] args) { 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("mysql --user=root --password=sa casemanager"); sw.WriteLine("your-query-here"); sw.WriteLine("exit"); } } } } }
この更新されたコードは DOS コマンド シェルを起動し、「mysql --user=root --password=sa casemanager」と入力して MySQL コマンド シェルに切り替えます。目的の MySQL クエリを実行し、最後に「exit」と入力して MySQL シェルを終了します。
StreamWriter を使用して、次の標準入力に書き込みます。シェル プロセスを使用すると、単一プロセス内で複数のコマンドを効果的に実行できるため、プロセスの実行が合理化され、全体的なパフォーマンスが向上します。
以上が新しいプロセスを作成せずに、単一の .NET プロセスで複数のコマンドを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。