vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: AsyncCallback abbrechen??? 
Autor: Bingo
Datum: 14.06.07 21:26

Also, ich habe nach längerer Bastelei was gefunden: Es beschreibt zwar nicht das Abbrechen der Callback aber man kann so eine (Socket) DisposedExeption vermeiden.
Private mySock As Socket
Private bKillMe As Boolean ' <- true, wenn Verbindung getrennt werden soll...
 
Private Sub OnRxData(Byval ar As IAsyncResult)
' AsyncCallback für das Empfangendvon Daten (aus mySock.BeginReceive)
Dim iRead As Integer
iRead = mySock.EndReceive(ar)
 
If bKillMe = True Then
  If mySock.Connected = True Then ' kann weggelassen werden??? weil in 
  ' Close/Dispose?
    mySock.ShutDown(ShutDown.Both)
  End If
 
  mySock.Close
  mySock = Nothing
  RaiseEvent ClientDisconnect()
  Exit Sub
End If
 
' Verarbeitung der gelesenen Daten wenn nicht gekillt wedren soll...
' [...]
End Sub
 
Public Sub Close()
bKillMe = True
If mySock.Connected = True Then
  mySock.ShutDown(ShutDown.Both)
End If
End Sub
Das Socket.ShutDown bewirkt einen Abbruch des Callbacks (indirekt?). Man kann dies z.B. prüfen, indem man eine MessageBox bei OnRxData einfügt:
Private Sub OnRxData(....)
' ....
 
If bKillMe = True Then
  If mySock.Connected = True Then ' kann weggelassen werden??? weil in Close?
    mySock.ShutDown(ShutDown.Both)
  End If
 
  mySock.Close
  mySock = Nothing
  MsgBox("Socket geschlossen...")
  RaiseEvent ClientDisconnect()
  Exit Sub
End If
 
' ...
End Sub
Wenn man dies nun testet, wird die Messagebox nur beim Aufruf von Close angezeigt und der Socket ordnungsgemäß geschlossen.
Es wird keine Exception angezeigt (was der Fall wäre, wenn man mySock.Close außerhalb der OnRxData aufrufen würde -> ObjectDisposedException).

Gruß
Philipp
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
AsyncCallback abbrechen???1.575Bingo13.06.07 21:17
Re: AsyncCallback abbrechen???1.300Bingo14.06.07 21:26

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel