Re: system.timer() Kategorie: Programmierung (von Wurl - 5.01.2011 10:48) | ||
Als Antwort auf Re: system.timer() von nitraM - 5.01.2011 7:54 | ||
| ||
[..] > Besser ist es, dies so zu berechnen: > system.timer()-timer<=10000 > > Hier wird die Differenz gebildet. Zu beachten ist aber, da� immer vom "höheren" Wert > der "kleinere" abgezogen wird. (Oder anders ausgedrückt: Vom aktuelleren (Timer-)Wert mu� > immer der alte Wert abgezogen werden.) > Nur so ist die Differenz immer positiv. [..] Das gefällt mir gut. Da kann man auch noch eine kleine Performance-Verbesserung einbauen, mit einem 'yield' beim Warten bekommen andere Threads mehr Prozessorzeit zugewiesen: thread Ueberwachung { long systimer_alt; long systimer_neu; long systimer_delta; long wart; run xxxx; // hier die ggf. hohe Prio fuer den Thread festlegen do //Warteschleife: { yield; //mehr Zeit fuer andere Threads //es koennte vielleicht auch ein 'sleep(1)' funktionieren... // - einfach mal probieren - systimer_neu = system.timer(); systimer_delta = (systimer_neu - systimer_alt); } while (systimer_delta < wart) or (Aktflag); systimer_alt = systimer_neu; //Timer-Vergleichswert für nächste Runde speichern { //Hier der Code, der das neue 'wart' als Relativzeit bestimmt. //Da mehrere Timer Ueberwacht werden, // die verbleibenden Zeiten jeweils um 'systimer_delta' reduzieren // und dann auf <=0 vergleichen. (wie im ersten Codebeispiel) } } //end of thread Ueberwachung | ||
Antwort schreiben Antworten: Re: system.timer() (von Detlef - 5.01.2011 17:08) |