Backgroundworker auf ArrayList

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

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Backgroundworker auf ArrayList

    Hoi Zusammen ^^ ,


    ich habe gerade ein kleines Problem, aus dem ich trotz suchen nicht schlau werde. Ich probiere gerade mit BackgroundWorkern rum und möchte aus einem solchen etwas in eine ArrayList schreiben.

    Schnell am ein Beispiel Code:

    VB.NET-Quellcode

    1. Public BGW_Results As ArrayList = Nothing
    2. Private Sub BGW_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGW_DoWork.DoWork
    3. 'Do something here
    4. If cool = 1 then
    5. BGW_Results.Add("Cool")
    6. else
    7. BGW_Results.Add("Uncool")
    8. End if
    9. End Sub


    Da ich mit so etwas noch nicht wirklich geschafft habe, ist mir schleierhaft wie ich da ran kommen. Vom vom lesen hier und da, habe ich verstanden das man die ArrayList nicht direkt ansprechen kann, sondern irgendwie casten muss.
    Verstehe aber nicht wie :S , kann mir das jemand an dem Beispiel mal zeigen

    Vielen Dank und einen schönen Tag euch ;)
    : NV Updater | Nvidia Driver Update Tool
    Heyho, ich glaube der Thread könnte dir helfen.


    Viele Grüße
    Bitte benutze OPTION STRICT ON.
    Und optional OPTION EXPLICIT ON.
    Hier ein CODE-CONVERTER.

    Suchanfragen-Ansatz für GOOGLE.
    Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

    TTX.exe schrieb:

    das man die ArrayList nicht direkt ansprechen kann
    Poste solche Sätze nur, wenn Du ein Beispiel hast, das das belegt.
    1. Vergiss die untypisierte ArrayList, nimm eine List(Of T).
    2. Klar kannst Du aus einem Neben-Thread heraus auf DAten eines anderen Threads zugreifen.
      Was nicht geht, ist der Zugriff auf GUI-Elemente aus einem Neben-Thread heraus, da musst Du invoken.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Weil BGW_Results nicht instanziert wurde... zumindest nicht in dem Code den du gepostet hast.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    TTX.exe schrieb:

    Public BGW_Results As ArrayList = Nothing
    ist eine Deklaration. Du sagst dem Compiler also, was BGW_Results mal typmäßig sein soll. Aber trotzdem ist durch die Deklaration BGW_Results erstmal sonst gar nix. Allerdings werde ich mich auch in Schweigen bzgl. Instanziierung hüllen, solange BGW_Results eine VB6-ArrayList ist. Und nicht z.B. eine .NET-List(Of String).
    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.
    Backgroundworker ist doch auch son oller grumpel-Müll, der nur noch zum Wegwerfen gut ist.

    Heutzutage löst man sowas mit Async-Await.
    mehr kann ich aber auch nicht sagen, weil das in post#1 gegebene Snippet nicht erkennen lässt, was eigentlich passieren soll.
    (wer startet den BGW, wer reagiert, wenn der BGW fertig ist, und wie)

    TTX.exe schrieb:

    Wie muss das nun instanziert werden?
    Normalerweise ziehst Du ein Control oder ein Component auf das GUI, das wird dann in der Prozedur InitializeComponents() instanziiert, diese Prozedur steht in der Datei FormX.Designer.vb.
    Erstell Dir mal ne GUI mit nur zwei, drei Controls und sieh Dir an, was in der Prozedur InitializeComponents() drinne steht.
    Verstehe das und Du weißt Bescheid.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!