Ich versuche, ein VB.net (Framework 4.5) zu schreiben, die sehen wird, ob 1000 Proxy-Server sind und ich möchte sie in Stapeln von 10 verarbeiten zu einer Zeit. Ich habe versucht, mit Threads, threadpool und haben eine leere gezeichnet, so sind jetzt auf die Verwendung einer parallelen Methode jedoch die Ausgabe ist nicht in Ordnung.Wann Threads oder Parallel zu verwenden, HTTPWebRequests in Reihenfolge zu bekommen, in Synchronisierung
Public Sub Get_Items_Click(sender As Object, e As EventArgs) Handles Get_Items_Button.Click
Dim ParallelOpts As New ParallelOptions()
ParallelOpts.MaxDegreeOfParallelism = 10
Parallel.For(0, 2000, ParallelOpts, AddressOf ProxySub)
End Sub
Public Sub ProxySub(ByVal ItemNumber As Integer)
‘Do some work … See if Proxy is up and running using HTTPWebRequest and output to a SyncLock textbox
End sub
Die ProxySub macht einen HttpWebRequest auf verschiedenen Servern, damit ich, dass die Reihenfolge zu verstehen, in dem sie zurückkehren wird nicht immer in der gleichen Reihenfolge, in der sie jedoch gesendet werden, ich synchronisieren müssen den Ausgang.
Auch wenn die "ParallelOpts.MaxDegreeOfParallelism = 10" gesetzt ist, warum sehe ich den Ausgang von 0 bis 40 springen?
Die Ausgabe wäre wie folgt; 0, 40, 5, 63, 7, 23, 1, 9 und so weiter.
Wie kann ich es synchronisieren, so dass die Ausgabe in Ordnung wäre, d.h. 0, 1, 2, 3, 4 und so weiter.
Vielen Dank für jede Eingabe können Sie
Hallo FloatingKiwi Vielen Dank für Ihre Eingabe, es wird sehr geschätzt. Seit der Veröffentlichung habe ich festgestellt, dass meine Herangehensweise nicht die beste ist, und ich habe jetzt einige Erfolge mit einem "Await AsyncHTTPWeb" gemacht. –