Thread Parameter

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Thread Parameter

Beitrag von AUGE_OHR »

hi,

irgendwas klappt hier nicht mit nNum :banghead:

Code: Alles auswählen

PROCEDURE MAIN
LOCAL nNum     := 1
LOCAL aArray   := {}
LOCAL oThread1 := Thread():new()
LOCAL oThread2 := Thread():new()
LOCAL oThread3

   CLS

   oThread2:setInterval(100)
   oThread2:start( "NowAdd", aArray,@nNum)

   oThread3  := AAA():NEW()
   oThread3:aAAArray := aArray
   oThread3:nNNNum   := nNum
   oThread3:setInterval(100)
   oThread3:start()

   oThread1:setInterval(100)
   oThread1:start( "ShowIt", aArray,@nNum)

   @ MAXROW()  ,1 SAY ""
   INKEY(10)

   oThread3:setInterval(NIL)
   oThread2:setInterval(NIL)
   oThread1:setInterval(NIL)
RETURN

PROCEDURE NowAdd(aArray,nNum)
   AADD(aArray,"hello")
   AADD(aArray,"world")
// hier wird der Zähler erhöht
   nNum++
   @ 11,1 SAY "NowAdd "+STR(LEN(aArray))+" "+STR(nNum)
RETURN

PROCEDURE ShowIt(aArray,nNum)
   @ 12,1 SAY "ShowIt "+STR(LEN(aArray))+" "+STR(nNum)
RETURN

CLASS AAA FROM Thread
   EXPORTED:
      VAR aAAArray
      VAR nNNNum
      METHOD INIT()
      METHOD Execute()
ENDCLASS

METHOD AAA:INIT()
   ::Thread:init()
RETURN self

METHOD AAA:Execute()
   @ 13,1 SAY "Thread "+STR(LEN(::aAAArray))+" "+STR(::nNNNum)
RETURN
das Array arbeitet so wie erhofft und NowAdd() erhöht per @nNum den Zähler.

nun bekomme ich nNum aber weder in ShowIt() oder der Class AAA "upgedatet" ... das Array schon.

Frage : wie behandle ich einen Numerischen Wert in solchen Fällen ?
gruss by OHR
Jimmy
Antworten