2016-04-16 11 views
2

Ich schreibe einen kleinen Desktop-Client zum Download der Liste der Dateien, Ich benutze die separate Aufgabe für jeden Download, und wenn ich in meinem System läuft es immer ausgeführt wird maximal 2 Downloads parallel. Ich benutze Core I7-Prozessor mit 64-Bit-BetriebssystemSo erhöhen Sie die Anzahl der parallelen Aufgaben in C#

Gibt es eine Möglichkeit, ich kann meine parallelen Downloads gewaltsam zu erhöhen (dh MinimumDegreeOfParallelism wie MaxDegreeOfParallelism), oder gibt es eine andere Möglichkeit, um es zu erreichen, brauche ich mindestens 4 Dateien zu parallel heruntergeladen werden.

Antwort

2

Die Anzahl der parallelen Downloads ist wahrscheinlich nicht durch die Anzahl der gleichzeitigen Threads begrenzt, sondern durch die Anzahl der gleichzeitigen Verbindungen Ihrer Anwendung, die standardmäßig auf 2 beschränkt ist. Sie können diesen Wert ändern, indem Sie ServicePointManager.DefaultConnectionLimit ändern Eigenschaft, zum Beispiel:

ServicePointManager.DefaultConnectionLimit = 100; 
+0

Dank @Adi Lester für die Antwort – Mathiyazhagan

+0

Kuriosität nur mehr über Aufgaben zu verstehen, wenn ich meine ServiceManager.DefaultConnectionLimit auf 1 gesetzt, und ich begann, zwei oder mehr Aufgaben in der Anwendung. Jetzt werden beide Tasks gestartet, und Downloads erfolgen nur von Task 1, wenn ich debugge und die Status-Eigenschaft von Task sehe (sowohl Task1 als auch Task 2 sind im laufenden Zustand), aber Task 2 wirft keinen Fehler auf, den ich nicht verstehe. t haben eine zusätzliche Verbindung und werden nicht heruntergeladen, bis die Verbindung verfügbar ist. Was ist der Status dieser Task2? (geht nicht in den Schlafmodus oder Polung, um die Verbindung zu erhalten) – Mathiyazhagan

+0

@Mathiyazhagan Task2 wird ausgeführt, blockiert jedoch, bis eine Verbindung verfügbar ist. Ob die CPU-Zeit anderen Threads während dieser Zeit zur Verfügung steht, hängt von der Implementierung von .NET ab, von der ich keine Ahnung habe. –

Verwandte Themen