Funktion mit Rückgabewert über Invoke+Eventhandler?

MCX

Mitglied
Hallo,

ich stehe zur Zeit vor einem Problem. Ich programmiere gerade einen Wecker für mein Handy und dafür möchte ich die Weckzeit in einer Textbox angeben. Nun ist das CF noch nicht soweit, dass es die Überprüfung von Werten eines Objekts akzeptiert, die nicht vom eigenen Thread stammen, weshalb man bei der Überprüfung der Eingabe über Me.Invoke(New Eventhandler(AddressOf function)) ausweichen muss.

Nun hab ich mir das so gedacht, dass der Thread dann eine bestimmte Funktion startet, wenn die Funktion mit dem Zeitabgleich den Wert 1 als Rückgabe gibt.

Wenn ich jetzt aber über Me.Invoke(New EventHandler(AddressOf zeitabgleich)) diesen Rückgabewert überprüfe, passiert einfach nichts. Als Test dafür lasse ich mir den Rückgabewert in einer anderen TextBox als Text ausgeben.. also wie folgt:

TextBox1.Text = Me.Invoke(New EventHandler(AddressOf zeitabgleich))

Bei eigentlich korrektem Zeitabgleich kommt jedoch in der Textbox einfach ein leeres Zeichen an.

Wenn ich das Ganze über TextBox1.Text = zeitabgleich() mache, kommt eine 1 an wenn der Abgleich korrekt war.


btw, die zeitabgleichs-fkt sieht wie folgt aus:

Code:
    Public Function zeitabgleich() As Integer
        If (DateAndTime.TimeString >= weckzeit.Text) Then
            Return 1
        Else : Return 0
        End If

    End Function
 
also falls es jemanden interessiert, ich hab die lösung gefunden. damit das ganze funktioniert, muss man ein delegate erstellen mit einem verweis auf die funktion, und dann diesen verweis über invoke aufrufen.

code is dann wie folgt:

Code:
   Public zeitverweis As New zeitdel(AddressOf zeitabgleich)

  Public Function zeitabgleich() As Integer
        If (DateAndTime.TimeString >= weckzeit) Then
            Return 1
        Else : Return 0
        End If
    End Function

innerhalb des threads ruft man das dann so auf:

Code:
Me.Invoke(zeitverweis)
 

Neue Beiträge

Zurück