Hallo, wie macht man folgendes: Auf einem embedded Linux läuft meine Applikation, die Daten graphisch auf einem LCD darstellt. Der Benutzer kann jetzt über Drehencoder den Zoom ändern oder große Datenmengen im Display hin- und herschieben. Jetzt können ja die Drehencoder sehr schnell Impulse generieren, schneller als die Zeichenroutine fertig ist. Das begrenzt für den Nutzer ziemlich nervig die maximale Geschwindigkeit, mit der er sich durch die Daten bewegt. Ich hätte jetzt gerne eine Möglichkeit, die Zeichenroutine stumpf abzubrechen, wenn der Benutzer den nächsten Drehencoder-Impuls ausgelöst hat, ohne daß das Bild fertig aufgebaut ist. So wäre die Geschwindigkeit, mit der man sich durch die Daten bewegt, nicht begrenzt. Dreht man langsamer, wird das Bild sofort aufgebaut. Gibt es sowas wie "Multitastink" innerhalb eines Programms? Ach ja, ich nutze Linux-2.6.24 directfb-1.0.1 und eine GNU Toolchain.
ja nennt sich Threads, aber dann sollte man genau wissen was man macht, damit sich beide Threads nicht in die quere kommen.
Aha, interessant, das Stichwort kommt mir bekannt vor. Können Threads auch miteinander kommunizieren? Da fällt mir noch eine andere Frage ein: Oft sind ja viele GUIs in GNU/Linux-Systemen nichts als Frontends für die darunterliegenden Unix-Tools. Wie bekommt man das eigentlich hin, daß diese Anwendungen einen Fortschrittsbalken anzeigen, während im Hintergrund ja ein einfaches Kommandozeilentool arbeitet? Die müssen ja auch irgendwie kommunizieren können. Gruß der Gerhard
> Können Threads auch miteinander kommunizieren?
die Threads sind ja keien eigene Prozesse, das ist alles innerhalb eines
Prozesses - alle Thread können auf dem gesamten Speicher der Anwendung
lesen und Schreiben - also auch auf Variablen gemeinsam zugreifen.
(Genau dann hat man das Problem das man es nicht gleichzeitig lesen und
schreiben sollte).
Aber man kann auch Klassisch mit IPC arbeiten.
Keine Ahnung wie das mit den Fortschritsbalken und kommandozeilen
Programm gemacht wird.
Ich könnte mir vorstellen das die GIU nicht die Ausführbare Datei
sondern die Libs nutzt und dort können auch Funktionen enthalten sein um
soetwas zu bewerkstelligen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.