Tach!
Mit meinem nachfolgenden Code will ich den Thread 0-19 falls:
Was machst du, wenn du morgen eine gößere Anzahl an Threads haben möchtest? Den Code kopieren und alle Zahlen anpassen? Was machst du, wenn du einen Fehler feststellst oder etwas ändern musst? Durch sämtliche Codekopien durchlaufen und den entsprechenden Teil ändern? Du weißt, dass es Arrays oder List<> gibt? Wann immer du denkst etwas mehrfaches mit durchnummerierten Variablen zu benötigen, ist Array/List<>/etc. das eigentliche Mittel der Wahl.
b) einer der 20 Threats nicht läuft selbigen starten.
Wenn ein Thread (mit d am Ende) einmal gestoppt ist, kann er nicht wieder gestartet werden. Wenn du ein Problem mit einer Methode oder ähnlichem hast, solltest du zuerst einmal die Dokumentation aufsuchen und die dortigen Anmerkungen lesen.
Die INT genauso wie die Counter-Variable sind mit korrekten Werten versehen (in dem Threat gibt es entsprechende Ausgaben).
Mein Problem an der ganzen Geschichte ist, das die Schleife genau nur einmal durchlaufen wird, obwohl dann z.B. in der INT restTLD noch ein Wert von z.b: 19 ist und alle Threats auf STOPPED stehen.
Wenn die (Kontroll-)Ausgaben lediglich in den Threads stehen, können sie auch bei weiteren Durchläufen nicht ausgegeben werden, weil die Threads ja nicht erneut gestartet werden können.
Im Debugger wirft das Teil übrigens nach dem ersten Durchlauf (ohne Fehler) eine Threat.Start-Exception - was aber n.m.E. doch eigentlich nicht dafür sorgen kann, das die WHILE abgebrochen wird, oder?
Wenn eine Exception nicht gefangen wird, stirbt das gesamte Programm an der Stelle. Man kann auch in den catch-Block eine Kontrollausgabe (oder einen Breakpoint) setzen.
Und sicherlich möchtest du dich über das Thema ThreadPool informieren.
dedlfix.