Timerarray - wie extern vermeiden?
-
Hallo,
was ich möchte:
Ich möchte in ein array zeitdifferenzen speichern. An jede stelle will ich eine zeitdifferenz von einer anderen code-stelle speichern damit ich alles am ende ausgeben lassen kann. Ich muss ein array verwenden weil ich auf MPI arbeite und ein paralleles programm habe, welches am ende für jede stelle des arrays noch daten austauscht.
Das Problem ist: Um auf das array zugreifen zu können brauche ich ja ein Objekt. Ich will aber nicht das Objekt überall hin durchschleifen durch alle methoden um irgendwo auf den member zugreifen zu können. Im Moment läuft es sehr unschön über ein globales externes array ab das gefüllt wird. Gibt es da irgendwie ne andere Möglichkeit? Oder bleibt mir nichts anderes übrig als wirklich das objekt bzw. zumindest einen pointer durchzunehmen um auf ein mögliches member-array zugreifen zu können?Danke
-
Du hast afaik 3 verschiedene Möglichkeiten:
1. Mitschleifen (Nachteil: viele Funktionsparameter)
2. statisches Objekt (Nachteil: alle Threads greifen auf das gleiche Array zu)
3. Speichern des im Thread-Kontext (Nachteil: Betriebssystemabhängig)Extern wird wohl nichts anderes sein als ein statisches Objekt sein.
-
danke - aber meinst du mit statisches objekt nicht das array, sondern die Klasse/Objekt die das memberarray trägt?
Weil sowas geht ja nicht:static Timer timer; my_fct(); // ..... void my_fct() { timer.Start_Time(0); //.... timer.Stop_Time(0); }so müsste ich auch das statische OBjekt durchschleifen oder nicht?
-
Ja, ich meinte nen statisches Array.
Der statische Timer bringt dich allerdings nicht weiter