Gast
#3208489
Hallo zusammen, ich muss gerade ein Stück Embedded Code (C++) auf Visual C++ MFC portieren. Nun komme ich aus einer einfach strukturierten Welt und werde erschlagen von der Funktionsvielfalt der MFC. Folgenden bestehenden Sachverhalt aus dem Embedded System mit Einfachsbetriebssystem möchte ich abbilden: mindestens 2 Tasks, ein oder mehrere Auftraggeber-Tasks, ein Worker-Task. Der Auftraggeber lastet in einer Queue Aufgaben ein, die vom Worker abgearbeitet werden. Der Auftraggeber ist so lange blockiert, bis der Worker das Event des Auftraggebers setzt, damit dieser weiterlaufen kann. Auf den PC übertragen sieht das dann so aus: Die o.g. Funktionalität soll in eine DLL verpackt werden. Die DLL hat eine Init + Deinit-Funktion, die einen Worker-Thread (AfxBeginThread(...)) startet. Anschließende DLL-Calls stellen die Aufträge dar. Eine DLL-Funktion wird also ausgeführt, blockiert bis zur Abarbeitung durch den Worker-Thread, und kehrt dann mit dem Ergebnis zurück. - Wie kann ich diesen Sachverhalt in MFC-Bordwerkzeugen umsetzen? Mit CEvent? - Auf dem Embedded System merke ich mir einfach die Task-ID des Auftraggebers und lasse ihn auf ein Event warten, dass vom Worker-Task gesetzt wird. Die Task-ID muss ich dazu in der Queue mitspeichern, damit ich das Event des richtigen Tasks setze. Wie lautet in MFC eine Funktion in der Art "GetTaskId()" oder regelt man das über ein CEvent? Vielen Dank vorab!