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;neema blog 18

{$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.



Aber welches Multithread-Programm?