AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wie schnell ist SendMessage?

Ein Thema von Carsten1234 · begonnen am 15. Mai 2009 · letzter Beitrag vom 15. Mai 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.151 Beiträge
 
Delphi 12 Athens
 
#11

Re: Wie schnell ist SendMessage?

  Alt 15. Mai 2009, 10:07
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.

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

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 ^^
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Wie schnell ist SendMessage?

  Alt 15. Mai 2009, 10:19
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 von himitsu:
Wenn gerade eine andere Message beim Empfänger in Bearbeitung ist, dann sollte dieses erst nach Beendigung dieser Bearbeitung ausgeführt werden ...
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#13

Re: Wie schnell ist SendMessage?

  Alt 15. Mai 2009, 10:25
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.151 Beiträge
 
Delphi 12 Athens
 
#14

Re: Wie schnell ist SendMessage?

  Alt 15. Mai 2009, 11:10
Na dann einfach mal in anderer Test

öffne einen Empfänger und z.B. zwei Sender
und klick dich einfach mal da durch
- 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
Angehängte Dateien
Dateityp: 7z sendmessage_107.7z (190,8 KB, 12x aufgerufen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz