Ik ben bezig met een Multi-threaded socket-wrapper. De tweede thread kijkt iedere keer of er data te halen van de socket, en vuurt dan een event af.
Het probleem hiermee is dat je dan een cross-thread warning krijgt als je vanuit dat event iets vanuit je form wilt aanpassen:
Dit snap ik ook, omdat forms niet thread-safe zijn. Normaal zou je dit oplossen met delegates en form.invoke().
Het probleem is dat ik geen referentie heb vanuit mijn socketclass naar de form (en dat lijkt me ook niet echt handig dat als je multithreading gebruikt in je class, je in eens wel een referentie naar je form nodig hebt).
Is er een makkelijke manier om dat makkelijk op te lossen? Ik heb al op google gezocht, maar daar gebruiken ze overal een referentie naar de form met invoke().
Het probleem hiermee is dat je dan een cross-thread warning krijgt als je vanuit dat event iets vanuit je form wilt aanpassen:
Visual Basic:
1
2
3
| Private Sub sock_DataArrival(ByVal BytesReceived As Long) Handles sock.DataArrival tbLog.AppendText("<--" & sock.getData().ToString & vbCrLf) End Sub |
Dit snap ik ook, omdat forms niet thread-safe zijn. Normaal zou je dit oplossen met delegates en form.invoke().
Het probleem is dat ik geen referentie heb vanuit mijn socketclass naar de form (en dat lijkt me ook niet echt handig dat als je multithreading gebruikt in je class, je in eens wel een referentie naar je form nodig hebt).
Is er een makkelijke manier om dat makkelijk op te lossen? Ik heb al op google gezocht, maar daar gebruiken ze overal een referentie naar de form met invoke().