Aktywne Wpisy
MallaCzarna +159
Eh.
Tak zdaje sobie sprawę, że normalni ludzie już się ze mną zgadzają, a reszta i tak nie zmieni zdania tylko będzie hejtować ale co tam. Gdzie moge się rozpisać jak nie na wypoku? A więc
Dodałam rozdajo, do wygrania dieta bo jestem dietetykiem. No i zaczęło sie gadanie, że wybralam "gówno -zawód" i ludzie płacą mi za coś co mogą sami zrobić w fitatu albo exceluಠಿ_ಠ.
I
Tak zdaje sobie sprawę, że normalni ludzie już się ze mną zgadzają, a reszta i tak nie zmieni zdania tylko będzie hejtować ale co tam. Gdzie moge się rozpisać jak nie na wypoku? A więc
Dodałam rozdajo, do wygrania dieta bo jestem dietetykiem. No i zaczęło sie gadanie, że wybralam "gówno -zawód" i ludzie płacą mi za coś co mogą sami zrobić w fitatu albo exceluಠಿ_ಠ.
I
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
List threadList = new List();
ResponseStreamList[] streamsByCategory = new ResponseStreamList[links.Length];
for (int i = links.Length - 1; i >= 0; i--)
{
//streamsByCategory[i] = GetStreamsFromLink(links[i]);
threadList.Add(new Thread(delegate() {streamsByCategory[i] = GetStreamsFromLink(links[i]); }));
threadList.Last().Start();
}
dlaczego jak odpale kod z komentarza to wszystko jest ok, a jak zamiast niego użyję tych wątków to i jakimś magicznym sposobem przyjmuje wartość -1 i wyrzuca IndexOutOfBounds?
#csharp #naukaprogramowania #dotnet
Innymi słowy - Twoje domknięcie przyjmuje i a nie wartość i. Co powoduje, że jak pętla się skończy to i = -1 i z taką wartością wykonuje się któryś z delegatów, tym samym indeksując tablicę [i], czyli [-1].
Powinno zadziałać jak zrobisz:
for (int i = links.Length - 1; i >= 0; i--)
{
var i2 = i;
//streamsByCategory[i] = GetStreamsFromLink(links[i]);
threadList.Add(new Thread(delegate() {streamsByCategory[i2] = GetStreamsFromLink(links[i2]); }));
threadList.Last().Start();
}
Więcej o async ... await
Przykład wyniku: