Tipp 0166 Asynchrone Operationen ausführen
Autor/Einsender:
Datum:
  Kevin Schlee
30.07.2007
Entwicklungsumgebung:   VB.Net 2005
Framework:   2.0
Das angefügte VB.NET-Projekt soll veranschaulichen, wie sich asynchrone Operationen leicht in die eigene Anwendung implementieren lassen.  Der Code ist entsprechend kommentiert und enthält die eigentliche Beschreibung des Vorgehens.
Das Modul APM enthält die Funktion DoSomething, welche eine längere Operation simuliert. Sie erwartet einen Übergabeparameter und liefert naturgemäß auch einen Wert zurück. Diese Funktion ist auch asynchron aufrufbar. Hierzu werden die Funktionen  BeginDoSomething und EndDoSomething verwendet. Im Startformular lässt sich die Methode 'synchron' und asynchron aufrufen. Ein weiterer Button demonstriert das Verhalten der Oberfläche bei den beiden verschiedenen Aufrufmethoden.
Code im Modul APM
 
Module APM
   ' Für die asynchron aufzurufende Funktion muss ein Delegat
   ' erstellt werden
  Private Delegate Function DoSomethingDelegate(ByVal _
      SomeParameter As Integer) As String

  Private DelDoSomething As DoSomethingDelegate
  Public Function DoSomething(ByVal SomeParameter As Integer) _
      As String

    ' Simuliert zehn Sekunden Arbeit/Berechnung
    Threading.Thread.Sleep(10000)
    Return SomeParameter.ToString
  End Function

  Public Function BeginDoSomething(ByVal SomeParameter As _
      Integer, ByVal CallBack As AsyncCallback, ByVal UserState _
      As Object) As IAsyncResult
    DelDoSomething = New DoSomethingDelegate(AddressOf DoSomething)
    Return DelDoSomething.BeginInvoke(SomeParameter, CallBack, _
       UserState)
  End Function

  Public Function EndDoSomething(ByVal Result As IAsyncResult) _
      As String
    Dim Userstate As String = CStr(Result.AsyncState)

    Return DelDoSomething.EndInvoke(Result)
  End Function
End Module
 
Hinweis
Das Download-Projekt ist ausführlich dokumentiert.

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (18,7 kB) Downloads bisher: [ 589 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 23. Januar 2012