Een stukje brein breker waar ik niet uit kom.
Ik ben bezig met een applicatie die multithreading is. Threads werken los van elkaar.
Nu is er een thread bij gekomen, welke een html pagina serveerd op een combi van Ip adres en Port.
Alleen deze thread heeft info nodig van Form_Main, als ik deze ophaal blijft de variabele leeg, logisch andere thread mag er niet aankomen. Omgekeerd krijg ik wel werkend data van een andere thread naar het Form_main sturen. Dit allemaal via InvokeRequired.
Nou heb ik dit ook geprobeerd om data op te halen:
Alleen hij blijft leeg, en krijg geen error meldingen. De functie werkt wel goed als ik deze aanroep in main thread. Hij is nu wel tijdelijk even Sub ivm delegate, maar het moet dus wel een function worden.
Google geeft mooie voorbeelden over data pushen van een thread naar een andere, maar ik wil graag data pullen. Iemand tips, of een goede tutorial ?
Ik ben bezig met een applicatie die multithreading is. Threads werken los van elkaar.
Nu is er een thread bij gekomen, welke een html pagina serveerd op een combi van Ip adres en Port.
Alleen deze thread heeft info nodig van Form_Main, als ik deze ophaal blijft de variabele leeg, logisch andere thread mag er niet aankomen. Omgekeerd krijg ik wel werkend data van een andere thread naar het Form_main sturen. Dit allemaal via InvokeRequired.
Nou heb ik dit ook geprobeerd om data op te halen:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| Public Sub GetLogItems(ByVal NumberOfItems As Integer) ' Declarations. Dim LogItems As String Dim LogItem() As String Dim Length As Integer Dim Start As Integer Dim ReturnString As String = String.Empty ' Set variables If Form_Main.TxtBox_LogAll.InvokeRequired Then Dim Del As New Form_Main.DelGiveTxtBox_LogAll(AddressOf GetLogItems) Form_Main.Invoke(Del, New Object() {NumberOfItems}) Else LogItems = Form_Main.TxtBox_LogAll.Text LogItem = Split(LogItems, Chr(10)) Length = LogItem.Length - 1 Start = (Length - NumberOfItems) If (Start < 0) Then Start = 0 For X As Integer = Start To Length ReturnString += LogItem(X) & "<br>" Next 'Return ReturnString End If End Sub |
Alleen hij blijft leeg, en krijg geen error meldingen. De functie werkt wel goed als ik deze aanroep in main thread. Hij is nu wel tijdelijk even Sub ivm delegate, maar het moet dus wel een function worden.
Google geeft mooie voorbeelden over data pushen van een thread naar een andere, maar ik wil graag data pullen. Iemand tips, of een goede tutorial ?