2 Aktionen gleichzeitig ausführen
-
igittigittigitt goto
In Assembler kannst du mit Sprungmarken zu arbeiten, aber doch nicht in C++, das ist extrem hässlicher Code, nimm Threads, hier gibts beispielcode für Threads unter Windows http://de.wikipedia.org/wiki/Thread_(Informatik)
-
Die einzelnen Command-Objekte sind dabei die "Threads" (in Anführungszeichen, da es sich nicht um echte BS-Threads handelt), die man für gewöhnlich als run-to-completion tasks bezeichnet. Ein Grundsatz für einen solchen Task ist, dass er nicht blockierend sein darf. Ziel des Ganzen ist eine "temporale Entkopplung" von Aufgaben.
@HumeSikkins: Ok, gut. Bloss ich nenne diese Art von Command-Objekt eben state machine
Denn du kannst ja kaum irgendwas da drinnen machen was nicht trivial ist (also wo man nicht jedes mal das gleiche macht bei jedem Durchlauf). Ok, zugegeben, diese Command Objekte müssen den State nicht selbst halten sondern können auf irgendwelche anderen Objekte/Strukturen verweisen wo der drinnen ist. Trotzdem, in meinem kranken Hirn sind das dann state machines mit einem "tick" oder "update" Event der den ganzen Ablauf vorantreibt.Bloss dass sie halt ein gemeinsames Interface haben, und in einer Liste/Queue stecken.
Oder anders argumentiert: was ist denn ein "Thread" (egal ob echt oder "nachgestrickt") wenn kein "Zustandsautomat" (aka. state machine)?
Schon... oder?