Mehrere Gadgets aktualisieren -für einen blutigen Anfänger!

Für allgemeine Fragen zur Programmierung mit PureBasic.
jerrydude
Beiträge: 3
Registriert: 23.10.2004 19:26
Wohnort: Hamburg

Mehrere Gadgets aktualisieren -für einen blutigen Anfänger!

Beitrag von jerrydude »

Da ich viel mit 3D-Animation mache und diverse Projekte im Netztwerk mit bis zu 15 Computern rendere will ich eine Art NETZWERK-CPU-MONITOR bauen! Einen Monitor der von jedem PC im Netzwerk die CPU-Auslastung anzeigt und bei bedarf Alarm schlägt! Nun meine Frage ....
wiese aktualisiert folgender CODE nicht beide Text-Gadgets ?
Wie mache ich das am besten ? Über StartTimer oder in der Hauptschleife .....

Code: Alles auswählen

;----------------------------------------
;----------------------------------------
;  start program code
;----------------------------------------
;----------------------------------------

Procedure updateCPUgadget()
   
   SetGadgetText(1,x$+Str(CpuUsage())+y$)
   
   SetGadgetText(2,Str(CpuUsage()))   ;   ZEIGT IMMER 100% AN !  
  
EndProcedure


   hWnd = OpenWindow(1,100,100,200,50,#PB_Window_SystemMenu,"CPU Monitor")
          SetWindowPos_(hWnd,#HWND_TOPMOST,0,0,0,0,#SWP_NOACTIVATE|#SWP_SHOWWINDOW|#SWP_NOMOVE|#SWP_NOSIZE)
          CreateGadgetList(hWnd)
         
          TextGadget(1,0,0,200,20,"VALUE",#PB_Text_Center)

     TextGadget(2,0,20,200,20,"VALUE",#PB_Text_Center)

  
   SetThreadPriority_( GetCurrentThread_() , #THREAD_BASE_PRIORITY_MAX)
   SetPriorityClass_(  GetCurrentProcess_(), #HIGH_PRIORITY_CLASS)


   StartTimer(1,500,@updateCPUgadget())
   
          
   Repeat: Until WaitWindowEvent() = #PB_EventCloseWindow

   EndTimer(1)
  
   Delay(310)
;----------------------------------------
;----------------------------------------
;  end program code
;----------------------------------------
;----------------------------------------
edit redacid: code-tags gesetzt.
Benutzeravatar
Rob
Shadow Admin
Beiträge: 258
Registriert: 26.08.2004 01:39
Kontaktdaten:

Beitrag von Rob »

Du rufts CpuUsage() zweimal kurz hintereinander auf. Zwischen diesen beiden Aufrufen ist die Auslastung 100%, wahrscheinlich, weil die CPU gerade mit der ersten Messung der CPU-Auslastung beschäftigt war...

Code: Alles auswählen

Procedure updateCPUgadget()  
  usage.s = Str(CpuUsage())
  SetGadgetText(1,usage) 
  SetGadgetText(2,usage)      
EndProcedure 
so gehts.


Und willkommen im Forum :)
Build a man a fire and he's warm for a day. Set a man on fire and he's warm for the rest of his life
Antworten