?
DocShoe schrieb:
Bei der Verwendung von PostMessage stellt sich die Frage über die Lebensdauer des String Nachrichtenparameters.
Ich hab nicht gesagt, dass er das bei PostMessage so machen soll ;), sondern nur, dass er eine Nachricht an das Form senden soll und dann mittels einer CriticalSection die Daten aus dem Thread lesen soll (was natürlich an dem Gültigkeitsproblem nicht viel ändert). Aber man könnte der Einfachheit halber die Queue im Thread belassen.
DocShoe schrieb:
Die sauberste und flexibelste Lösung bietet mMn das Command Pattern in Verbindung mit einer Queue, das bedeutet aber einiges an Overhead (aber gleichzeitig auch Widerverwertbarkeit).
Sobald es etwas komplexer wird, läuft es wohl darauf hinaus...
MSDN schrieb:
If the specified window was created by the calling thread, the window procedure is called immediately as a subroutine. If the specified window was created by a different thread, the system switches to that thread and calls the appropriate window procedure. Messages sent between threads are processed only when the receiving thread executes message retrieval code. The sending thread is blocked until the receiving thread processes the message. However, the sending thread will process incoming nonqueued messages while waiting for its message to be processed.
Gut, dass ich SendMessage nirgendwo im Einsatz habe. Ich bin nämlich davon ausgegangen, dass der Thread an der Stelle wartet - und eben nichts anderes macht.