ich rufe in C# ein exe-Programm (stammt nicht von mir) auf und setze dabei ein Argument. Der Aufruf sieht wie folgt aus:
Process pc = new Process();
pc.StartInfo.FileName = @"c:\pfad\programmXY.exe";
pc.StartInfo.Arguments = "-test";
pc.Start();
pc.WaitForExit();
myReturnCode = pc.ExitCode;
Wenn ich nun in einer DOS-Box (Kommandozeilenaufforderung) folgenden Befehl eingebe:
c:\pfad\programmXY.exe -test
dann dauert die Ausführung (wird auch in einer log-Datei vom aufgerufenen Programm protokolliert) ca. 1,5 Sekunden.
Der obige Aufruf aus C# mit Process.Start dauert aber ca. 26 (in Worten: sechsundzwanzig!) Sekunden!
Das ganze ist beliebig reproduzierbar.
Woran kann das liegen? Wie erreiche ich mit C# eine vergleichbare Ausführungszeit des fremden Programms?
Was mir noch aufgefallen ist: Während der 26 Sekunden hört man die Festplatte stark arbeiten; vielleicht ein Hinweis für die Ursache?
Gruß
suedsee