Ich habe ein Problem mit dem WebClient.C# WebClient mehrere Ausführung
Einfach Ich überprüfe Datei in einem Ordner verpasst. Wenn ich diese Datei nicht habe, navigiere ich mit WebClient zur Webseite und sende einen Wert, um eine Abfrage auszuführen und den Wert in der Datenbank zu speichern.
Mein Problem:
Ich habe eine Liste von 1500 Elementen zum Beispiel. Aber nach dem ersten Element wird die for-Schleife gestoppt (vielleicht) oder navigiert nicht mehr.
Mein Code:
List<string> fileneed = new List<string>();
im Thread
//Distinct
fileneed = fileneed.Distinct().ToList<string>();
for (int i = 0; i < fileneed.Count; i++)
{
if (fileneed[i].Contains("."))
{
w = new WebClient();
w.OpenRead("http://mywebsite.org/collab/files.php?act=need&user=" + Properties.Settings.Default.user + "&file=" + fileneed[i]);
fileneed.RemoveAt(i);
}
}
Nach Ausführung des Threads, gehe ich zu meinem PhpMyAdmin und ich sehe nur eine Datei. Andere Dateien in der Liste nicht angezeigt werden oder vorhanden sind oder mit einem seltsamen Problem, führt mein Code einmal die Schleife.
_ „Aber nach dem 1. Element der für cicle gestoppt wird ** (vielleicht) **“ _ - warum nicht fügen Sie Ihren Debugger und stellen Sie sicher, dass es aufhört? Sie sollten auch keine Elemente aus einer Liste entfernen, während Sie darüber iterieren. Wenn Sie den Punkt 0 entfernen, wird Punkt 1 zu Punkt 0, aber Ihr 'i' wird niemals verringert. – CodeCaster
Sie müssen die Schleife rückwärts durchlaufen: for (int i = fileneed.Count - 1; i> = 0; i--). Wenn Sie eine Liste 1,2,3,4 haben und 2 löschen, wird 3 zu 2, so dass Sie das Löschen überspringen. – jdweng