List.items.add(msg) =false aangeroepen vanuit thread

Pagina: 1
Acties:

  • GregoryBE
  • Registratie: April 2004
  • Laatst online: 25-11 01:47
Hallo,

Form: FORM1 aangeroepen door Public Sub en Public Sub door knop
Visual Basic .NET:
1
2
3
4
5
6
Dim DoConnect As New Threading.Thread(AddressOf startloadthread)
DoConnect.Start()

Public Sub startloadthread()
        debuglog.addlog("Server started on port " & PORT)
End sub


Module: debuglog (met listbox lstdebug)
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Sub addlog(ByVal process As String)
        addtolistthread(lstdebug, DateTime.Now & " " & process)
End Sub

Delegate Sub addtemp(ByVal objectt As Object, ByVal text As String)
Public Sub addtolist(ByVal objectt As Object, ByVal text As String)
        objectt.Items.Add(text)
End Sub

Public Sub addtolistthread(ByVal objectt As Object, ByVal msg As String)
        If objectt.InvokeRequired = True Then
            Dim d As New addtemp(AddressOf addtolist)
            objectt.Invoke(d, New Object() _
                       {objectt, msg})
        Else
            addtolist(objectt, msg)
        End If

End Sub

objectt.InvokeRequired op regel 11 geeft FALSE
en addtolist(objectt, msg) op regel 16 geeft ook FALSE

Enig idee hoe ik toch items vanuit een thread kan toevoegen?

Alvast bedankt :)

[ Voor 5% gewijzigd door GregoryBE op 25-04-2007 14:11 ]

It's just a matter of time...


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Kan je hier even wat meer uitleg verschaffen over:
- wat je precies probeert te doen
- wat er precies niet lukt

want dit topic heeft op die manier niet echt veel overlevingskansen, en ik denk ook niet dat er veel mensen de moeite zullen doen om eerst en vooral uit te pluizen wat je probleem nu eigenlijk is.

https://fgheysels.github.io/


  • GregoryBE
  • Registratie: April 2004
  • Laatst online: 25-11 01:47
Concreet: Wanneer ik een item in een list toevoeg vanuit een andere form en andere thread lukt dit niet :(
Er zijn dus geen foutmeldingen maar item wordt ook niet toegevoegd...

[ Voor 44% gewijzigd door GregoryBE op 24-04-2007 16:25 ]

It's just a matter of time...


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
De boel al eens gedebugged zodanig dat je ziet wat er precies gebeurd ?

https://fgheysels.github.io/


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
waarschijnlijk loop jij er tegenaan dat je niet bij je objecten kan vanuit een andere thread omdat die thread geen owner is van je instantie?

dit was in 2003 nooit een probleem, maar in .net 2.0 hebben ze het opeens een probleem gemaakt.
Er is wel een nette oplossing voor.. ik zal eens even kijken of ik die 123 kan vinden helaas :/

This message was sent on 100% recyclable electrons.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:10

TeeDee

CQB 241

Moet je niet ergens in je "module debuglog" ook een delegate hebben?
Je hebt gelijk. VB.net lezen is niet mijn sterkste kant ;)

[ Voor 58% gewijzigd door TeeDee op 24-04-2007 16:40 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
BasieP schreef op dinsdag 24 april 2007 @ 16:29:
waarschijnlijk loop jij er tegenaan dat je niet bij je objecten kan vanuit een andere thread omdat die thread geen owner is van je instantie?

dit was in 2003 nooit een probleem, maar in .net 2.0 hebben ze het opeens een probleem gemaakt.
Er is wel een nette oplossing voor.. ik zal eens even kijken of ik die 123 kan vinden
Ja, de backgroundworker, maar dat kan je zelf ook makkelijk zelf maken door zelf te checken op invokerequired ed, wat de TS ook doet. Trouwens, mocht dat het probleem zijn, dan zou je in .NET 2.0 ws een exceptie krijgen, en dat krijgt de TS dus volgens hem niet.

https://fgheysels.github.io/


  • GregoryBE
  • Registratie: April 2004
  • Laatst online: 25-11 01:47
whoami: ja totaal geen fouten bij runnen, maar er komt ook niets bij in de lijst
BasieP: Heel fel bedankt :)
TeeDee: Regel 5?

Als je alle code in eenzelfde form draait werkt alles perfect... :(

It's just a matter of time...


  • GregoryBE
  • Registratie: April 2004
  • Laatst online: 25-11 01:47
BasieP scriptje toevallig al gevonden?

It's just a matter of time...


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
GregoryBE schreef op woensdag 25 april 2007 @ 11:01:
BasieP scriptje toevallig al gevonden?
nee, en ik heb ook geen 2005, ik werk hier op me werk met 2003, en daar heb je dit probleem niet.

maar wat whoami al zei
Ja, de backgroundworker, maar dat kan je zelf ook makkelijk zelf maken door zelf te checken op invokerequired ed, wat de TS ook doet. Trouwens, mocht dat het probleem zijn, dan zou je in .NET 2.0 ws een exceptie krijgen, en dat krijgt de TS dus volgens hem niet.
je zou een exception moeten krijgen wanneer dit het probleem was.

lees dit eens door:
http://msdn2.microsoft.co...ntrol.invokerequired.aspx
http://msdn2.microsoft.co...rary/ms171728(VS.80).aspx

(ow en checken of iets true is doe je meestal gewoon zonder het '= true' gedeelte..)

[ Voor 17% gewijzigd door BasieP op 25-04-2007 11:06 ]

This message was sent on 100% recyclable electrons.


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
GregoryBE schreef op woensdag 25 april 2007 @ 11:01:
BasieP scriptje toevallig al gevonden?
Dit is hier ook geen script-request forum...

Trouwens, op m'n vraag of je al eens gedebugged heb, bedoel ik of je al eens stap voor stap door je code gelopen hebt, en gebruik gemaakt hebt van watches zodat je de state van je variablen kunt inspecteren

https://fgheysels.github.io/


  • GregoryBE
  • Registratie: April 2004
  • Laatst online: 25-11 01:47
Excuses had er even overgekeken, dit stuk moet natuurlijk bij in het formpje
Visual Basic .NET:
1
2
Dim DoConnect As New Threading.Thread(AddressOf startloadthread)
DoConnect.Start()


whoami, heb wat gegooglet, en hopelijk heb k het juist, wat je bedoelt met watches, er enkele msgboxen tussen of nog beter,
een fout (zoals stop() ) die de app stopt waardoor je state van objecten kan bekijken. Aan de listbox die in objectt zit valt mij weinig op...en zoals eerder, bericht geraakt tot aan addtolist(objectt, msg).
(bedankt BasieP, maar is een beetje een gewoonte geworden...)

It's just a matter of time...

Pagina: 1