Hi,
Gilt noch zwischen preemptives und kooperatives Multitasking zu Unterscheiden. Im kooperativen Multitasking ist ein Threadwechsel vom Programm abhängig, sprich erst ein PostMessage erlaubt es dem Kernel die Ausführung an den nächsten Thread zu geben. Galt noch unter Win 3x bzw. 16 Bit. Beim preemptiven Multitasting hingegen werden die Threads so oder so umgeschaltet. Daher müssen auch immer alle Register und Co gesichert werden. Ein Thread bekommt im Zeitscheibenverfahren ca 20 ms zur Verfügung gestellt und dann kommt der nächste. Gilt seit Win 95 bzw. 32 Bit. Ein Prozeß ist ein initial Thread oder primary Thread. Von hier aus kannst können dann weiter Threads erzeugt werden oder auch wiederum neue Prozeße. Der Unterschied .... ach so viel wollte ich nun auch nicht schreiben . Jedenfalls können ab Win 95 (preemtiv) auch die alten 16 Bit Programme laufen. Dazu wird ein VM geladen, wo dann ein kooperatives Multitasking abläuft, sprich konkurierende Prozeße. Das Problem mit dem Blinken. Nunja... Das kannst Du mit VC++ (Consolenanwendung) nicht erzeugen, da dort das Bit 7, welches normalerweise für das blinken zuständig ist, als Intensitätsflag für die Hintergrundfarbe eingesetzt wird. Sprich dunkles Hintergrundrot wird heller wenn dieses Bit gesetzt ist. Man kann halt nicht alles haben. Turbo C kann das, aber ich weiß nicht ob es da eine 16-Bit Anwendung erzeugt. Eine Consolenanwendung unter VC++ ist jedenfalls eine 32-Bit Anwendung. Es läuft also nicht in einer VM für 16-Bit Programme, denn nur dort, so schätze ich, würde der Text blinken, da andere Module zum Einsatz kommen. Weiterhin werden in der VM für 16-Bit Programme Zeiger und Interrupts gemappt. Sprich auf entspr. Routinen umgeleitet, Wie z.B. der Zugriff auf den Grafikspeicher. Bei einer 32-Bit Consolenanwendung geschieht dies halt nicht und da, so glaube ich, liegt der Hund begraben.
hth
primatee