Wenn ich Thread thread = new Thread(meineFunktion); thread.Start(); thread = new Thread(meineFunktion); thread.Start(); in c# verwende, also zweimal hintereinander das Gleiche, läuft dann der erste Thread thread weiter, ich kann ihn aber nicht mehr mit Suspend oder ähnlich erreichen oder ersetzt der zweite Abschnitt den ersten?
In anderen Worten, wenn ich in einer Schleife mehrere Threads erstellen will, die dann alle parallel laufen, wie greife ich dann jeweils auf die einzelnen threads zu?
Indem Du die erzeugten Thread-Objekte z.B. in eine Liste, ein Array oder sonst eine Collection steckst? Grüße Markus
Meinst du mit dem Fragezeichen, daß du dir selbst nicht sicher bist? Dann warten wir lieber auf jemanden, der sich dabei sicher ist.
Manchmal stellt man provozierende Frage, um dem gegenüber das Erfolgserlebnis der "Selbsterkennen" zukommen zu lassen. Versteht aber nicht jeder.
Nein das Fragezeichen bedeutet: Hast du das jetzt wirklich gefragt? Und falls ja, verstehst du die Antwort?
NetiquetteIgnorierender schrieb: > Bastler schrieb: >> Versteht aber nicht jeder. > > Wenn das so ist, ist mir ist das zu blöd. Naja, die ursprüngliche Frage war ja nicht wirklich unlösbar. Das nicht verstehen zu wollen, entzieht sich mir als "vor-Copy&Paste-Generations-Geborener". Ich will Dinge wissen. Nachteil ist nur, man ist nicht täglich "exited" wegen Dingen, die nicht wirklich neu sind.
NetiquetteIgnorierender schrieb: > Wenn ich > .... > .... > in c# verwende, So macht man das nicht - für soetwas benutzt man einen Stack oder gleich eine Collection. Das schöne an C# ist, dass du für so ziemlich alles irgendeinen Container basteln kannst, in die du alles reinfüllst - und rausschmeißt.
NetiquetteIgnorierender schrieb: > in c# verwende, also zweimal hintereinander das Gleiche, läuft dann der > erste Thread thread weiter, ich kann ihn aber nicht mehr mit Suspend > oder ähnlich erreichen oder ersetzt der zweite Abschnitt den ersten? Es laufen beide Threads, der erste wird nicht gestoppt. Du kannst auf den ersten aber über "thread" nicht mehr zugreifen. Wie schon erwähnt, würde man die gestarteten Threads dann wohl eher mit einer der Collection-Klassen verwalten. btw: "Do not use the Suspend and Resume methods to synchronize the activities of threads. You have no way of knowing what code a thread is executing when you suspend it. If you suspend a thread while it holds locks during a security permission evaluation, other threads in the AppDomain might be blocked. If you suspend a thread while it is executing a class constructor, other threads in the AppDomain that attempt to use that class are blocked. Deadlocks can occur very easily." ...zudem ist .Suspend() als "Obsolete"-markiert und sollte Compiler-Warnungen verursachen! Falls Thread-Synchronisierung erforderlich ist, besser danach googlen, da sollte man richtige Lösungen finden können ;D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.