Seite 1 von 2
ein einfaches Beispiel eines Multithread-Delphi-Programms. In diesem Beispiel erstellen wir eine Delphi-Anwendung mit zwei Threads
jeder druckt Nachrichten an die Konsole.
delphi
program MultithreadedApp; {$APPTYPE CONSOLE} Verwendet SysUtils, Klassen, Windows; Typ TMyThread = Klasse(TThread) geschützt Prozedur ausführen; überschreiben; Ende; Prozedur TMyThread.Execute; beginnen // Nachrichten aus jedem Thread ausgeben solange es nicht beendet ist beginnen Writeln('Thread-ID: ', GetCurrentThreadId, ' läuft.'); Schlaf(1000); // 1 Sekunde lang schlafen Ende; Ende; var Thread1, Thread2: TMyThread; beginnen versuchen // Zwei Threads erstellen Thread1 := TMyThread.Create(False); Thread2 := TMyThread.Create(False); // Warten, bis die Threads beendet sind Thread1.WaitFor; Thread2.WaitFor; außer auf E: Ausnahme tun Writeln('Exception: ', E.ClassName, ': ', E.Message); Ende; Ende.
In diesem Code:
TMyThread ist eine benutzerdefinierte Thread-Klasse, die von TThread geerbt wurde. Die Execute-Methode wird überschrieben, um den Code zu definieren, der im Thread ausgeführt wird. Jeder Thread gibt seine ID jede Sekunde mit GetCurrentThreadId und Writeln an die Konsole aus. Wir erstellen zwei Instanzen von TMyThread, Thread1 und Thread2, und übergeben False an den Konstruktor, um anzugeben, dass die Threads sofort mit der Ausführung beginnen sollen. Schließlich rufen wir WaitFor für beide Threads auf, um zu warten, bis die Ausführung abgeschlossen ist.