C# で組み込みのシェル コマンドを実行するための Process 以外の方法はありますか? 現在、Process クラスを使用してこれらのコマンドを実行しています。しかし、現在のシナリオでは、200 以上のコマンドを並行して実行したいと考えています。したがって、200 を超えるプロセスを生成することはお勧めできません。他の代替手段はありますか?
質問する
739 次
3 に答える
0
Max Keller が指摘したように、System.Diagnostics.Process
常に新しいシステム プロセスを開始します。
プロセス/操作を数秒以上開始する必要がある場合は、すべてのコマンドを一時ファイルに保存し、System.Diagnostics.Process
単一の操作ではなく、これを実行することをお勧めします。
// Get a temp file
string tempFilepath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "MyBatchFile.bat");
// Ensure the file dont exists yet
if (System.IO.File.Exists(tempFilepath)) {
System.IO.File.Delete(tempFilepath);
}
// Create some operations
string[] batchOperations = new string[]{
"START netstat -a",
"START systeminfo"
};
// Write the temp file
System.IO.File.WriteAllLines(tempFilepath, batchOperations);
// Create process
Process myProcess = new Process();
try {
// Full filepath to the temp file
myProcess.StartInfo.FileName = tempFilepath;
// Execute it
myProcess.Start();
// This code assumes the process you are starting will terminate itself!
} catch (Exception ex) {
// Output any error to the console
Console.WriteLine(ex.Message);
}
// Remove the temp file
System.IO.File.Delete(tempFilepath);
于 2012-05-16T10:33:19.637 に答える
0
You could but, shouldn't do
using Microsoft.VisualBasic;
Interaction.Shell(...);
Note: You would have to add a reference to the the VisualBasic assembly.
This is a direct answer to your question but, not somthing you should do.
于 2012-05-16T10:26:54.043 に答える