Invoke in einem Module

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Kraizy.

    Invoke in einem Module

    Hallo,
    ich versuche gerade eine Schleife zu erstellen, die so lange eine Taste drückt, bis sich ein bestimmter Wert ändert, die Form soll jedoch nicht einfrieren. Also habe ich es so versucht:

    VB.NET-Quellcode

    1. Private Delegate Sub DrückenDelegate()
    2. Sub Button_Click
    3. StarteDrücken()
    4. End Sub
    5. Private Sub StarteDrücken()
    6. Me.Invoke(New DrückenDelegate(AddressOf DrückenThread))
    7. End Sub
    8. Private Sub DrückenThread()
    9. Dim t As New System.Threading.Thread(AddressOf Login)
    10. t.Start()
    11. End Sub
    12. Private Sub Drücken()
    13. Do Until blabla
    14. ...
    15. Loop
    16. End Sub

    Das funktioniert auch ganz gut, jedoch wollte ich das ganze in ein Modul packen, damit ich in meiner Main-Form einfach nur StarteDrücken(Taste) schreiben kann, jedoch wird mir angezeigt, dass Invoke nicht deklariert wurde..
    Kann mir jemand sagen wie ich das nun machen muss?

    Cr4ckY schrieb:

    jedoch wird mir angezeigt, dass Invoke nicht deklariert wurde..

    Das ist verständlich, schliesslich ist ein Module selber eine Klasse und daher gibt es ein Me.Invoke nicht. Wenn, dann müsstest Du Deiner Methode im Module selber die Form als Parameter mitgeben.
    Nocjh ein paar Bemerkungen:
    - Modules sind für so etwas ziemlich schlechter Stil, gerade da Du den Klassen/Module Namen selber weglassen kannst. Nimm lieber eine Klasse mit einer Shared Methode.
    - wieso benötigst Du Deine Methode StarteDrücken(), obwohl die doch nichts anderes macht als die Methode DrückenThread() aufzurufen ?

    Kangaroo schrieb:

    Cr4ckY schrieb:

    jedoch wird mir angezeigt, dass Invoke nicht deklariert wurde..

    - wieso benötigst Du Deine Methode StarteDrücken(), obwohl die doch nichts anderes macht als die Methode DrückenThread() aufzurufen ?

    Stimmt, hab die nun weggelassen, dachte ohne das friert die Form ein..klappt jetzt alles und habs nun auch in eine Klasse gepackt.