Hi,
ich hab vor eine bestimmte Anzahl X an Threads zu starten und falls einer dieser Threads beendet ist, soll ein neuer Thread gestartet werden, aber nur so, dass maximal immer X Threads gestartet sind.
Um es genauer zu sagen möchte ich, einen kleinen Downloadmanager für die Erfahrung schreiben, sonst würd ich gleich selbst JDownloader oder sowas benutzen.
Ich möchte einstellbar max X gleichzeitige Downloads laufen lassen und mir aus jedem Thread die Geschwindigkeit an die Form ausgeben.
Nun meine Probleme:
- wie soll ich diese Threads beobachten, ich ja will meinen HauptThread nicht dauerhaft besetzen, gäbe es da nur die Möglichkeit eines Timers/neue Threads in Extra Thread starten+überwachen?
- ich habe eine Reihe an Aufgaben im HauptThread: soll ich die Threads mit jeweils einer Aufgabe starten oder sie aus einer Threadsicheren Queue/Stack (bspw. ConcurrentQueue) die Aufgaben abrufen lassen?
- ich möchte sicher gehen, dass sich nicht einer meiner Threads aufhängt, da sie mit dem Internet verbunden sind. Könnte ich das mit einem Timestamp regeln der überprüft wird und nach einer bestimmten Zeit wird der Thread abgebrochen?
- ich möchte in der Form eine Information einblenden, die erst in den Threads berechnet wird, doch wie komm ich vom inneren der Threads an die Form?
Also ehrlich gesagt hab ich momentan noch keine Idee wie ich das anstellen sollte.
Die Schwierigkeit für mich liegt vor allem darin, dass ich nicht weiß wie ich das Regeln soll, dass mehrere Threads an derselben Aufgabe arbeiten bis sie erledigt ist.
Danke schonmal im Voraus für Hilfen!
ich hab vor eine bestimmte Anzahl X an Threads zu starten und falls einer dieser Threads beendet ist, soll ein neuer Thread gestartet werden, aber nur so, dass maximal immer X Threads gestartet sind.
Um es genauer zu sagen möchte ich, einen kleinen Downloadmanager für die Erfahrung schreiben, sonst würd ich gleich selbst JDownloader oder sowas benutzen.
Ich möchte einstellbar max X gleichzeitige Downloads laufen lassen und mir aus jedem Thread die Geschwindigkeit an die Form ausgeben.
Nun meine Probleme:
- wie soll ich diese Threads beobachten, ich ja will meinen HauptThread nicht dauerhaft besetzen, gäbe es da nur die Möglichkeit eines Timers/neue Threads in Extra Thread starten+überwachen?
- ich habe eine Reihe an Aufgaben im HauptThread: soll ich die Threads mit jeweils einer Aufgabe starten oder sie aus einer Threadsicheren Queue/Stack (bspw. ConcurrentQueue) die Aufgaben abrufen lassen?
- ich möchte sicher gehen, dass sich nicht einer meiner Threads aufhängt, da sie mit dem Internet verbunden sind. Könnte ich das mit einem Timestamp regeln der überprüft wird und nach einer bestimmten Zeit wird der Thread abgebrochen?
- ich möchte in der Form eine Information einblenden, die erst in den Threads berechnet wird, doch wie komm ich vom inneren der Threads an die Form?
Also ehrlich gesagt hab ich momentan noch keine Idee wie ich das anstellen sollte.
Die Schwierigkeit für mich liegt vor allem darin, dass ich nicht weiß wie ich das Regeln soll, dass mehrere Threads an derselben Aufgabe arbeiten bis sie erledigt ist.
Danke schonmal im Voraus für Hilfen!