wenn man eine ListBox oder ListView mit "vielen" Elementen auffüllen will kann das dauern.
Also habe ich das in Treads unterteilt wobei der 1st Thread nur das bearbeite was man "sehen" kann.
nun brauche ich für das ListView auch noch die Imagelist ... die dauert etwas länger ... also starte ich die zuerst.
Code: Alles auswählen
IF ::luseOwnIcon = .T.
oThread1 := Thread():new()
oThread1:start( {|| ::MyImageList(::cStartDir,::aData,1,nPageCount) } )
ENDIF
//
// hier die 1st Seite
//
FOR nRow := 0 to MIN(nPageCount-1,::nRowMax-1)
// hier die 1st Seite
NEXT
Code: Alles auswählen
IF nMaxItem > nPageCount
IF ::luseOwnIcon = .T.
oThread3 := Thread():new()
oThread3:start( {|| ::MyImageList(::cStartDir,::aData,1,nMaxItem) } )
ENDIF
oThread4 := Thread():new()
oThread4:start( {|| ::MoreRows(nPageCount,nMaxItem,nSel) })
ENDIF
es scheint mir so als wenn die 1st Seite "zu schnell" fertig ist und Thread 3 startet obwohl Thread 1 noch am arbeiten ist.
klar könnte ich "warten" bis Thread 1 "fertig" ist ... aber ich ich ja nicht "warten" ...
aber meine Frage ist : wieso ergibt sich bei "schnelleren" PCs das Problem ? müssten nicht alle Zeilen "schneller" werden ?