Wie kann mit einem Thread auf Array von einem anderen zugreifen lassen?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von EugenIS.

    Wie kann mit einem Thread auf Array von einem anderen zugreifen lassen?

    Hallo, hab ein kleines Problemchen:

    hab ein thread a, und einen thread b.

    aufgabe von a:

    er hat einen array mit 1000 werten. und dieses array aktualisiert er die ganze zeit.

    aufgabe von b:

    er soll diese werte nehmen und halt was anderes damit machen.

    mein Problem:

    ich könnte zwar das array global machen, so das beide dadrauf zugreifen können, was passiert eigenlich wenn beide gleichzeitig damit was machen. deswegen frage ich nach, wie mans richtig macht.

    vielen dank im vorraus.
    Du könntest mit einer Get-Methode (Readonly Property) arbeiten.
    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!
    Teilaufgabe von b:

    über eine entsprechende Methode ein Datum nach dem anderen von a holen und damit tun, was zu tun ist.
    Dazu muss a bzw. die Klasse von a über diese entsprechende Methode verfügen.
    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!
    Datum ist der Singular von Daten. :D
    z.B. Werte eines Feldes / Arrays
    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!
    danke für den beispiel.
    das ist doch nur ein tipp.

    also ich sags jetzt ganz höflich, danke dir, aber lass bitte jemand anderen die frage beantworten. ich habe nämlich das gefühl nach deneiner zehnten antwort werde ich immer noch dum bleiben.

    die frage ist doch ganz klar formuliert, wenn jemand kein bock drauf hat gut zu antworten, dann soll er das sein lassen. und die gelegenheit jemand anders geben mir gut zu antworten. ich muss doch hier nicht jedes wort einem aus der nase ziehen. für mich sieht gute antwort so aus:

    du machst es mit: blabla

    bla ist dafür da und bla ist dafür da.

    hier ein kleines beispiel:

    blabla blabla


    das ist gute antwort. sonst ist das das selbe wie "wie kann ich auto fahren"-> "das machst du mit dem lenker!" häää??? ?(
    Du deklarierst eine ReadOnly Eigenschaft, das geht so:

    VB.NET-Quellcode

    1. Public ReadOnly Property Array As String()
    2. Get
    3. Return ArrayAusThreadA
    4. End get
    5. End Property


    und greifst in Thread B statt auf das Array auf das neue ReadOnly Property Array zu.

    (Sollte es Gemecker geben, wo gesagt wird

    Auf diese Eigenschaft greift schon ein anderer Thread zu.


    Dan bau in einem von den beiden Threads oder zur sicherheit in beide eine pause von z.B. 1 ms(nie getestet) ein, oder arbeite mit delegate subs(sollte gehen).
    Nun, ich denke das Zugreifen auf ein einzelnes Element wir eher atomar sein, d.h. die beiden Threads sollten sich da nicht behindern. Allerdings könnte es zu einem Problem werden, wenn Du die Länge des Strings abfragst da die sich ja evtl laufend verändert. In diesem Fall wirst Du wohl mit SyncLock arbeiten müssen.