Laden...

UdpClient Receive Thread beenden

Erstellt von Apfelschorle vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.487 Views
A
Apfelschorle Themenstarter:in
16 Beiträge seit 2009
vor 13 Jahren
UdpClient Receive Thread beenden

Hi!
Ich habe einen ReceiveThread gemacht, indem er immer wieder die Receive Methode von der UdpClient Klasse aufruft. Ich weis jetzt jedoch nicht, wie ich diesen Thread beenden kann, da er ja bei der Methode "Receive" so lange stehen bleibt, bis er was empfängt. Und nachdem man den Thread ja nicht einfach "killen" kann, weis ich nicht, wie ich diesen beenden soll.

Hat da jemand eine Idee?

C
401 Beiträge seit 2007
vor 13 Jahren

Ruf Socket.Close auf, dann beendet Receive mit einer ObjectDisposedException und danach kannst du den Thread einfach auslaufen lassen.

edit:

Sorry, hatte das WebClient überlesen. Laut MSDN hat WebClient keine Receive Methode und die Transportschicht von HTTP ist außerdem TCP, nicht UDP. Erkläre bitte nochmal genauer, was du da machst. Evtl. auch mit Code.

A
Apfelschorle Themenstarter:in
16 Beiträge seit 2009
vor 13 Jahren

Tut mir leid, meinte natürlich UdpClient...
Ich verstehe nicht, wie ich die close methode aufrufen kann, wenn der gesammte Thread durch die "Receive" Methode blockiert ist.

C
401 Beiträge seit 2007
vor 13 Jahren

Die Close musst du natürlich aus einem anderen Thread aufrufen. Mal angenommen du hast einen Button "Disconnect" und der hat einen zugewiesenen ClickHandler. Dann rufst du in diesem Handler Socket.Close auf. Natürlich musst du dafür eine Referenz auf den Socket, bzw. auf das Objekt, welches den Socket beinhaltet, haben.

A
Apfelschorle Themenstarter:in
16 Beiträge seit 2009
vor 13 Jahren

Funktioniert, Vielen Dank =D

C
401 Beiträge seit 2007
vor 13 Jahren

Gerne 😉