1

C# で組み込みのシェル コマンドを実行するための Process 以外の方法はありますか? 現在、Process クラスを使用してこれらのコマンドを実行しています。しかし、現在のシナリオでは、200 以上のコマンドを並行して実行したいと考えています。したがって、200 を超えるプロセスを生成することはお勧めできません。他の代替手段はありますか?

4

3 に答える 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 に答える