Forum: Object-Pascal / Delphi-Language
by BUG,
8. Nov 2014
Ich vermute mal, das da auf Gleichheit geprüft wird, bevor irgendetwas bewegendes passiert. Müsste man wohl in die Sourcen gucken.
Allerdings hat Himitsu schon recht: richtig bringt es nichts, dem jetzt nachzuspüren ... hast du denn noch Problem mit dem Code in deiner Anwendung?
Forum: Object-Pascal / Delphi-Language
by BUG,
7. Nov 2014
Sicher? Das doch macht Application.ProcessMessages.
Forum: Object-Pascal / Delphi-Language
by BUG,
7. Nov 2014
Stimmt, vermutlich wird da jedes mal eine Nachricht gesendet :shock:
Das könnte schon ein bisschen Ärger machen.
Wahrscheinlich Hyperthreading: Jeder echte Kern stellt 2 Hardware-Threads bereit. Die werden nicht echt gleichzeitig ausgeführt, können aber Wartezeiten im Prozessor überbrücken.
Forum: Object-Pascal / Delphi-Language
by BUG,
7. Nov 2014
Definitiv nicht. Sleep gibt den Prozessor freiwillig ab, blockierende Systemaufrufe auch. Ansonsten sind Threads präemptiv, dh. dem Thread wird die CPU entrissen wann immer das Betriebsystem Lust dazu hat.
Man unterscheidet User-Level-Threads und System-Level-Threads. Von User-Level-Threads hat das System keine Ahnung und sie laufen nicht parallel. Unter Windows könnten das Fibers (sind eher...
Forum: Object-Pascal / Delphi-Language
by BUG,
7. Nov 2014
Eigendlich sollte kein Thread in der Lage sein, irgendeinen anderen durch eine Schleife zu "blockieren" (abgesehen von welchen mit niedriger Priorität). Dafür sorgt das Betriebssystem.
Deswegen finde ich auch die Lösung mit dem Sleep irgendwie merkwürdig (und die Erklärung dazu) :gruebel: