Multithreading um Dateien zu laden

  • VB.NET
  • .NET (FX) 4.0

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

    Multithreading um Dateien zu laden

    Ich würde gerne einige Dateien, die in form von Chunks gespeichert sind Laden, leider hängt das bei jedem vorgang ein bisschen. Also habe ich einen BackgroundWorker genommen, was einen Fehler bei folgendem verursacht:

    VB.NET-Quellcode

    1. For Each C As Chunk In Chunk
    2. C.SensorDraw()
    3. Next

    Undzwar: Die Auflistung wurde geändert. Der Enumerationsvorgang kann möglicherweise nicht ausgeführt werden.
    Und jetzt weiß ich nicht mehr weiter...
    na, offensichtlich ändert #2 die Auflistung, und zwar dieselbe Auflistung, die For Each grade durchläuft.
    Jo, und das kannste halt nicht bringen, das ist wie beim Tisch decken, wenn währenddessen neue Gäste kommen oder die geplanten Gäste schon wieder gehen.

    Also tu deine Chunks in ein Array, dann weißt du was du hast:

    VB.NET-Quellcode

    1. For Each C In Chunk.Cast(Of Chunk).ToArray
    2. C.SensorDraw()
    3. Next
    übrigens ne tolle Idee, die Auflistung genau so zu benennen wie den Datentyp. Nenn doch auch noch die Laufvariable Chunk ;)
    Und bei ner Array ist das nicht so, dass ein fehler kommt, wenn sie async verändert wird? (ganz anscheinend ja...)
    Und danke, alles klappt jetzt.
    Neeee mit der Laufvariable gehts ja nicht weil es nen konflikt mit der klassenweiten Liste verursacht.
    Die Idee, die Liste so wie die Klasse zu nennen hab ich von Trade.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „00yoshi“ ()