Return bei Invoke(Sub()...) stimmt nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von roepke.

    Return bei Invoke(Sub()...) stimmt nicht

    Hallo, ich habe gerade bemekt, dass meine per

    VB.NET-Quellcode

    1. Return CBool(Me.Invoke(Sub() USBAutoConnect_2ndThread()))

    aufgerufende Funktion zwar sehr wohl ein Boolean zurück liefert, dieses aber dann mittels des Return im Aufruf nicht zurückgegeben wird.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Function USBAutoConnect() As Boolean
    2. Return CBool(Me.Invoke(Sub() USBAutoConnect_2ndThread())) 'liefert das True aus der aufgerufenen Fkt. nicht weiter zurück
    3. End Function
    4. Private Function USBAutoConnect_2ndThread() As Boolean
    5. Return True 'liefert True
    6. End Function


    Warum nicht?
    Probier es mal mit

    VB.NET-Quellcode

    1. Return CBool(Me.Invoke(Function() USBAutoConnect_2ndThread()))
    Aber brauchst Du wirklich ein Invoke? Das sollte eigentlich nur für GUI-Manipulation benötigt werden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wenn man davon absieht, dass der BGW schon ziemlich Mottenkisteninhalt ist: nö. Lesend kann man m.E. immer zugreifen, nur nicht schreibend. Probier es aus und berichte.
    Bilder
    • Nebenläufigkeit.png

      26,69 kB, 644×316, 28 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich sehe gerade, dass ich das mal geändert hatte. Früher war das auch ohne Invoke(). Ich hatte aber Probleme an anderer Stelle und vermutet, dass es möglicherweise was mit dem threadübergeifenden Zugriff zu tun hat. Deshalb hatte ich das testweise mal geändert und dann nie mehr rückgängig gemacht.