AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Threadunterbrechung - nicht mit suspend
Thema durchsuchen
Ansicht
Themen-Optionen

Threadunterbrechung - nicht mit suspend

Ein Thema von Delphi-Laie · begonnen am 6. Mai 2015 · letzter Beitrag vom 10. Mai 2015
 
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Threadunterbrechung - nicht mit suspend

  Alt 6. Mai 2015, 21:52
Ja, das ist ein Knackpunkt, ging mir nicht anders - aber auch ein Durchbruch, wenn man es verinnerlicht hat.

Jeder Thread hat ein Handle. Die Idee ist es jetzt, die Threads zu starten und sich die Handles in einem Array zu merken. Dieses Array reicht man dann an eine API-Funktion wie "WaitForMultipleObjects()", die wartet, bis alle Threads fertig sind. Das Warten selbst ist zwar blockierend, verbraucht aber (so gut wie) keine CPU-Zyklen. Nach diesem Schema ist sichergestellt, dass alle Threads frei arbeiten können - im Rahmen dessen, was das Betriebssystem und der Prozessor eben hergeben. In diesem Fall dürfen sich die Threads allerdings nicht selbst freigeben, da Windows sonst keine Chance hat, deren Status abzufragen.

DP, EE und DT haben einige Einträge und Beispiele zu "WaitForMultipleObjects()". Ich empfand deren Lektüre als sehr erhellend.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz