On 19 Oct 2014 "Anton Reiser" <anton-reiser@xxxxxxxxxxx> wrote: >Beim User-Drag Teile des Fensters neu zeichnen oder ggf. je nach >Position den Pointer ändern geht doch nur interaktiv bei aktiviertem >Null-Event oder Wimp_PollIdle mit ganz kurzen Intervallen. RISC OS erkennt das das Fenster oder eine Teil davon neu gezeichnet werden muss und schickt Redraw_Window an Wimp_Poll und dann kann im Programm das Fenster oder ein Teil davon neugezeichnet werden. In der Regel macht man das dann via Wimp_RedrawWindow und Wimp_GetRectangle. Aber sicher gibt es auch Ausnahmen. Wenn ich mich richtig erinnere macht das aber RISC OS eh selbst und die paar Zeilen sind entweder historisch oder zur Sicherheit. RISC OS hat kooperatives Multitasking. Mal angenommen es gibt zwei Programme die laufen und beide brauchen einige Minuten um ihr Werk zu vollenden. Das erste Programm gibt nach einiger Zeit die CPU frei und wartet über die Wimp_Poll mit dem Ereignis Null Reason darauf weiter zu arbeiten zu können. RISC OS übergibt nun dem anderen Programm die CPU. Nach einiger Zeit gibt auch dieses Programm die CPU frei und wartet, so wie das erste Programm, auf die CPU. So geht das hin und her bis die Programme fertig sind. Real sind natürlich viele Programme beteiligt. Der Desktop, der Filer usw. wollen ja auch bedient werden und das nennt man dann Multitasking. Also die quasi gleichzeitige Abarbeitung von mehreren Programmen. Hier bestimmen die Programme selbst wann sie, wenn überhaupt :-(, die CPU freigeben für die anderen Programme. Bei preemptiven Multitasking, wie bei Linux, Mac OS oder Windows, steuert das Betriebssystem die Verteilung und entzieht den aktiven Programmen die Rechenzeit um ein anderes Programm die CPU zu geben. Das mit den vielen CPUs/Kernen ist hier natürlich aussen vor. Der Null-Event ist also eigentlich ein "Du kannst weitermachen". Natürlich könnte man bei jeden Null-Event das Fenster neuzeichen, das ist aber reine Verschwendung. RISC OS sagt einen schon wenn es notwendig ist und das klapt ja auch gut. Null-Events sollte man grundsätzlich vermeiden und möglichst nur nutzen um die Arbeit fortzusetzen. Natürlich gibt es auch Ausnahmen. Mit Tools wie TaskUsage kann man Programme die unötigerweise Null Reason benutzen erkennen. Das sind dann die Programme die einen langen Balken haben obwohl die untätig sind. Mit Wimp_PollIdle wird RISC OS nur mitgeteilt, wann man wieder die Kontrole haben möchte. Ansonsten ist es ein Wimp_Poll. Programme die im Hintergrund auf etwas warten oder von Zeit zu Zeit etwas machen sollen, ist Wimp_PollIdle die Wahl. Carlos Michael Santillán -- http://www.arcsite.de/ http://www.risc-os.de/ Ein Staat, in dem alle verdächtig sind, ist selbst verdächtig A state that suspects everyone is itself suspicious