Witam, z góry przepraszam jeżeli nazwa tematu jest myląca.
A więc chciałbym żeby użytkownik mógł sobie wybrać ilość wątków (za pomocą numericupdown) które będą wykonywać daną akcje.
Kombinowałem z TaskList i Parallel.ForEach, ale niestety nie udało mi się dojść do tego jak to zrobić. Szukałem również na zagranicznych forach, ale nie znalazłem konkretnej odpowiedzi.
Może ma ktoś pomysł jak zrobić coś takiego?
a co te wątki mają robić?
wysyłać i pobierać dane z mojej strony (http)
a po co tworzyć wątek? nie może być Task
?
O taski właśnie mi chodzi. Dlatego pisałem, że kombinowałem z TaskList i Parallel.ForEach
Mógłbyś trochę bardziej objaśnić problem? Chcesz jedną akcję (pobranie danych) wykonywać w kilku taskach?
Tak, ale chcę żeby użytkownik mógł sobie wybrać ile tych tasków ma być (np. za pomocą numericupdown)
Czyli np. jeśli wybierze 1 to rozpoczyna się 1 task, jeżeli 3, to 3 itd
Ale jaki jest sens pobierać te same dane w 3 taskach ? Czy masz jakąś pulę tych operacji ?
Przecież to bez sensu, jeśli pobierasz dane z tego samego źródła to nie da się tego podzielić na wiele wątków. Tak samo jak nie ma sensu np. wczytywać w kilku wątkach tego samego pliku żeby wyświetlić dane...
To nie mają być te same dane. Zresztą nie o to tu chodzi. Nie pytam się czy ma to sens czy nie, tylko jak można to zrobić.
normalnie - odpalasz tyle wątków/tasków ile user wybierze. Bez kodu jak to masz teraz ciężko coś podpowiedzieć, w szczególności czemu nie działa
Najprościej tak.
var operationsToWaitFor = new List<Task>();
for (int i = 0; i < numberOfTasks; i++)
{
operationsToWaitFor.Add(Task.Run(() => {}));
}
await Task.WhenAll(operationsToWaitFor);
Dziękuje, właśnie o to mi chodziło.