Avatar billede mickni33 Nybegynder
07. marts 2008 - 10:07 Der er 8 kommentarer og
1 løsning

arbejde med tråde

Jeg synes ikke rigtig at mine tråde fungere rigtigt

Jeg opbevare mine tråde i en Liste ...
Nu vil jeg gerne have det sådan at når der er oprette 10 tråde (som ligger data i DB) så står main og venter på at de måske 5 er færdige før der køres videre i main og bliver oprettet op 5 nye tråde...
Tråd pooling...

Men jeg synes ikke rigtig at mine tråde arbejder så godt..
Har det noget at sige at main arbejdere meget hurtigere end min tråd funktion som ligger data i DB(dette tager ca 3 sec at ligge en gruppe af insert's i DB)

Er der nogen der lige kan kigge på det jeg har her?

public void start(){

thread1 = New Threading.Thread(AddressOf _threadClass.insertIntoDB)
        thread1.Start()
        threadList.Add(thread1)


        Do Until threadList.Count < 20
            Threading.Thread.Sleep(5)
            For Each thread As Threading.Thread In threadList
                If thread1.ThreadState = Threading.ThreadState.Stopped Then
                    threadList.Remove(thread)
                    a = threadList.Count
                    Exit For
                End If
            Next
        Loop
}
Avatar billede erikjacobsen Ekspert
07. marts 2008 - 10:11 #1
Jeg kan ikke se nogen grund til at du siger "Exit For". Det vil blot tage længere tid.
Avatar billede mickni33 Nybegynder
07. marts 2008 - 10:18 #2
aaaaahh ok
den er hermed fjernet...
Men hvad med resten det ser vel ok ud ... eller hvad?
Avatar billede erikjacobsen Ekspert
07. marts 2008 - 10:50 #3
Ja, men lige en ting jeg overså. Du kan vist ikke fortsætte en iterering gennem en arraylist, når du ændrer i den med Remove. Derfor skal du nok have din "exit for", men du skal starte den igen med det samme og ikke vente 5 sekunder. Så længe der er stoppede tråde, så fjern dem. Når der ikke er flere stoppede tråde, så går du op til din "do until".

(Blander du ikke C# og VB.NET?)
Avatar billede mickni33 Nybegynder
07. marts 2008 - 10:55 #4
hehehe det er VB.. men der er aldrig nogen der svarere på det Forum :-)

Aaaarrgggg opdagede lige fejlen:
For Each thread As Threading.Thread In threadList
                If thread1.ThreadState = Threading.ThreadState.Stopped Then


det skal jo ikke være : if thread1
men thread som den
Avatar billede mickni33 Nybegynder
07. marts 2008 - 10:58 #5
Ja erikj
Jeg prøver lige det du siger det..
Avatar billede erikjacobsen Ekspert
07. marts 2008 - 11:05 #6
Nå ja ;)

Bare rolig - jeg drømmer om VB.NET for tiden ...  Men vis lige koden, når du har den.
Avatar billede mickni33 Nybegynder
07. marts 2008 - 11:08 #7
hehehhe jeps jeg poster det lige men fejlen jeg beskrev :

det skal jo ikke være : if thread1
men thread som den

det hjalp betydeligt da det blev rettet... arbejder lige lidt på din løsning
Avatar billede mickni33 Nybegynder
25. september 2008 - 10:46 #8
lig lige et svar
Avatar billede erikjacobsen Ekspert
25. september 2008 - 11:25 #9
Nej tak. Samler ikke på point. Svar selv, accepter dit eget svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester