none
Windows XP embedded Threads und Multitasking RRS feed

  • Frage

  • Hallo Forum

    Ich habe ein MFC-SDI Projekt vorliegen und habe allerlei Visualisierung an die OnTimer Routine der CView-Klasse angebunden (alle 50ms ruft mir der Windows Timer über OnTimer meine Grafikaktualsierungsfunktionen auf).

    Es kann auch vorkommen, dass innerhalb der OnTimer-Routine ein Dialog aufgerufen wird (zur Initialsierung ziemlich rechenaufwändig) und so weit funktioniert das alles auch.

    Parallel dazu habe ich von der Application-Klasse einen eigenen Thread (mit AfxBeginThread) gestartet, der die eigentliche Steuer/Regelfunktion des Systems erledigen soll. Dieser Thread bedient Hardware (AD Karten, etc.) und läuft mit 20ms Zykluszeit, wobei er seinen Zyklus aus einem Event bezieht (WaitForSingleObject), das einer der AD-Karten-Threads setzt, wenn es wieder neue Daten gibt. So weit so gut .. auch das funktioniert.

    Wenn ich jetzt aber in der Visu den rechenaufwändigen Dialog aufrufe, bleibt in dieser Zeit auch der Regel/Steuerthread stehen.

    Ich muss dazu sagen, dass das Ganze auf einem embedded-System läuft, das einen Intel-Dualcore Prozessor verwendet, der allerdings über WinAC RTX aufgeteilt wird, sodass für WindowsXPe nur ein Kern zur Verfügung steht und der andere Kern eine Soft-PLC betut.

    Jetzt stellen sich mir folgende Fragen:

    * Hab ich im MFC Gerüst irgendwas falsch gemacht, dass sich diese Dinge blockieren?

    * Wie weit gehen die Preemptiven Multitaskingfähigkeiten von WindowsXPe?

    * Würde das auf einem Mehrkernprozessor besser laufen?

    * Könnt ihr mir verzeihen, falls diese Frage an dieser Stelle etwas nach "off topic" riecht?

    Grüße

    FireHeart

    Donnerstag, 10. Oktober 2013 05:37