EIN Timer für ALLE Instanzen EINER Klasse

gott_ad

Grünschnabel
Hi,

ich habe eine Klasse die PERSON heißt. Davon speicher ich in einem Array 50 Instanzen. Jetzt soll EIN Timer in diese Klasse PERSON rein, der dann für ALLE Personen gelten.
Alle Personen sollen, wenn der Timer greift (TICK-Event), irgendwas machen.

Wenn ich den Timer als STATIC deklariere, schmiert C# immer ab! Außerdem weiß ich nicht, an welcher stelle ich das Timer-Event in die EventHandler Liste eintragen soll?!

Wenn ich PERSON von einer abstrakten Oberklasse erben lasse (die den Timer schon enthält), kann ich irgendwie nicht auf den Timer zugreifen und außerdem hätte ich doch dann für jede Person einen eigenen Timer, oder?

Nochmal zum Verständnis. Das Programm zeichent mir 50 Personen.
Ziel ist, wenn der Timer von PERSON auf eine Sekunde gestellt ist, dass dann per Zufall neue Koordinaten für EINIGE Personen gesetzt werden und so also einige Personen ihre Position SELBSTSTÄNDIG ändern.

Irgendwelche Ideen?
Danke im Voraus!

Gruß
Gott a.D.
 
Mach den Timer doch ausserhalb der Instanzen ... also einen Timer und im TickEvent verwaltest dann deine Personen ....
 
Das geht nicht, denn es soll Objektorientiert sein. D.h. die Personen müssen sich selbst darum kümmern, dass sie ihre Position ändern.
Zu erst hatte ich es auch außerhalb (in der Klasse, die auch das Array der 50 Personen enthält), aber das war falsch.
Alle Personen brauchen einen gemeinsamen Timer (notfalls auch 50 Verschiedene). So das es im Modell so aussieht, als ob die Personen aus freier Entscheidung sich SELBSTSTÄNDIG bewegen und das Hauptprogramm (das die 50 Personen erzeugt und das Array mit ihnen besitzt) nichts damit zu tun hat, was die Personen machen.
:-(
 
Original geschrieben von Norbert Eder
Ähm, dann würde ich Threads verwenden und keine Timer .. mit Timern schießt dich nur selber ins Knie.
Aber wieso? Soll ich für jede person einen einzelnen Thread erzeugen?
Außerdem sollte es so sein, dass man ein Zeitintervall eingeben kann und in dem bewegen sich die Personen, also, dass man zusehen kann, was passiert.
Bei Threads müsste ich die ja immer in den Warten-Modus schicken. Was dann wieder vom Hauptprogramm gesteuert werden müsste.

Es muss doch möglich sein, einen gemeinsamen Timer für eine Klasse zu erzeugen, oder?
 
Zurück