Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
Delphi 10.2 Tokyo Enterprise
|
Re: Auf Beendigung einer Methode warten
19. Feb 2009, 12:28
Sirius beschreibt das richtig,
Wenn innerhalb eines Programms Arbeiten zu erledigen(Objecte/Methoden) sind dann kann dies technisch nur nacheinander funktionieren. Es kann genausowenig wie ein Thread aufgeteilt werden. Aufteilen geht nur mit mehreren Threads wenn mehrere Prozessoren(oder Kerne) vorhanden sind und dies auch vom Betriebssystem unterstützt wird. Dürfte bei allen modernen Systemen aber der Fall sein denn das aufteilen der Threads managed das BS und nicht die Hardware. Ein einzelner Thread oder Programm kann niemals aufgeteilt und teile davon parallel bearbeitet werden.
Das Problem was du mit deiner Datei hast liegt im Windows begraben. Da eine geschlossene datei nicht sofort vom Filesystem freigegeben wird, deine Anwendung hat ja erstmal den Fukos und somit priorität. Alle Funktionen im System werden eben nacheinander abgearbeitet. Das heist zuerst kommen deine 3 Paintaktionen und dann das Dateischließen sobald dein Programm auf die nächste Message vom Windows wartet. Es sei denn du würdest die Datei selber schließen, was aber blödsinn wäre. Wenn du ein Sleep einbaust dann wird dem Betriebssystem Zeit gegeben in der Programmpause was anderes zu machen und damit wird eine andere Aufgabe dazwischengeschoben - zum beispiel das schließen der Datei was noch vom Filemanager ansteht.
Zum problem:
warum lädst du dein Bild nicht in einen Container und zeichnest von dort aus (TBitmap)
Gruß Matthias
Matthias Das Leben ist eines der härtesten.
|