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?

We use cookies
Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Unsere Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben