Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie schnell ist SendMessage? (https://www.delphipraxis.net/134075-wie-schnell-ist-sendmessage.html)

himitsu 15. Mai 2009 09:07

Re: Wie schnell ist SendMessage?
 
Zitat:

Zitat von nicodex
Dann erkläre bitte, warum WM_BAR ankommt, während die Behandlung von WM_FOO noch nicht abgeschlossen ist:

also im Prinzip wird da ja auch "nacheinander" gearbeitet ... nur mit Application.ProcessMessages veranlaßt du ja, daß alle weiteren (vorhandenen) Nachrichten genau jetzt abgearbeitet werden.
Und das ist dann auch kein Multithreading, da die aktuelle Nachricht ja solange angehalten wird. :angel2:

Ohne diesen Eingriff wird ja das ProcessMessages erst wieder intern ausgeführt, sobald die aktuelle Nachricht fertig ist :stupid:

Und in deinem Fall sendest du ja aus der aktuellen Bearbeitung eine Nachricht raus ... da wird Windows dann wohl 'ne Ausnahme machen.

@Luckie: grobgesagt jupp ^^

nicodex 15. Mai 2009 09:19

Re: Wie schnell ist SendMessage?
 
Zitat:

Zitat von himitsu
also im Prinzip wird da ja auch "nacheinander" gearbeitet ...

Ich rede auch nicht von Multithreading.
Mir geht es um die folgende Aussage:
Zitat:

Zitat von himitsu
Wenn gerade eine andere Message beim Empfänger in Bearbeitung ist, dann sollte dieses erst nach Beendigung dieser Bearbeitung ausgeführt werden ...


rollstuhlfahrer 15. Mai 2009 09:25

Re: Wie schnell ist SendMessage?
 
Also ich hab folgendes gesehen:

a) in der 1. Instanz von Delphi wird SendMessage zu einem Form des Programms aus der 2. Instanz von Delphi ausgeführt.
b) 1. Instanz: Einzelschritt => 2. Instanz: Programm bemerkt Nachricht, 1. Instanz: Programmablauf hällt an und wartet, bis 2. Instanz wieder zurückgibt.

Somit wirst du auch bemerken, dass wenn du nicht per Multithreading jeder deiner Klassen eine eigene Nachrichtenschleife zukommen lässt, dass 1. die nicht vorhandenen Nachrichtenschleifen ein "Überholen" verhindern und 2. sollte SendMessage solange warten, bis ein Ergebnis (RESULT) da ist, dass zurückgegeben wird. Und bei dem Ergebnis handelt es sich nicht um einen Zeiger, sondern um eine ZAHL.

Bernhard

himitsu 15. Mai 2009 10:10

Re: Wie schnell ist SendMessage?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Na dann einfach mal in anderer Test :angel:

öffne einen Empfänger und z.B. zwei Sender
und klick dich einfach mal da durch :stupid:
- der Empfänger braucht dann etwa 5 Sekunden je Nachricht


z.B. kurz hintereinander:
- Programm 1 > PostMessage abgesendet
- Programm 1 > SendMessage abgesendet
- Programm 2 > PostMessage abgesendet
- Programm 2 > SendMessage abgesendet
- Programm 1 > PostMessage abgesendet (sobald das Programm sein SendMessage fertig hatte)

Zitat:

PostMessage von 1 - Beginn
PostMessage von 1 - Ende
SendMessage von 1 - Beginn
SendMessage von 1 - Ende
SendMessage von 2 - Beginn
SendMessage von 2 - Ende
PostMessage von 2 - Beginn
PostMessage von 2 - Ende
PostMessage von 1 - Beginn
PostMessage von 1 - Ende
die letzen PostMessages warten, da SendMessage bevorzugt behandelt wird
und PostMessage wird in Reinfolge des Absendens behandelt


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr.
Seite 2 von 2     12   

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