Re: Redirect von StdOut und StdErr Multikernprozessoren
Von: Raymond Czerny (chip@raymisoft.de) [Profil]
Datum: 01.06.2008 19:54
Message-ID: <6ag63qF3739r4U1@mid.individual.net>
Newsgroup: de.comp.lang.delphi.misc
Datum: 01.06.2008 19:54
Message-ID: <6ag63qF3739r4U1@mid.individual.net>
Newsgroup: de.comp.lang.delphi.misc
Hallo Marian, > >> Aber bei echten Multikernprozessoren funktioniert das Umleiten von >> StdOut und StdErr nicht mehr. > > Ich kann meine Glaskugel nicht starten um das Problem zu erkennen. Aber > ich frage mich: > >> * 4 Threads >> - Hauptprogramm (IDE) >> - Kommandozeilenprogramm ( mit CreateProcess ) >> - Auslesen von StdOut >> - Auslesen von StdErr > > Wieso sind das vier Threads? Schlimmstenfalls könnte ich mir zwei > vorstellen. Sequenzielles lesen von StdOut und StrErr kann machmal zu Datenverlusten führen, das StrErr nicht gepuffert wird. > > Einer ist der für die VCL, der Hauptthread. Der zweite startet das externe > Programm und liest dessen Ausgaben. Das auf mehrere Threads zu verteilen > erscheint mit übermäßig kompliziert. Derjenige, der das Programm gestartet > hat, hat doch sowieso nix zu tun als auf dessen Ende zu warten, oder? Da > kann er ja gut noch ein bisschen anpacken und die zwei Pipes bedienen :-). > Um nach dem Programmende aufzuräumen: - Threads beenden - CloseHandle >> Wer kann mir helfen? > > Du könntest damit anfangen "funktioniert nicht mehr" etwas genauer zu > spezifizieren. ReadFile auf die Pipes von Stdout und StdErr liest nichts. Es wird immer eine Größe 0 zurückgegeben. Gruß Raymond[ Auf dieses Posting antworten ]
