Tworzenie wątków przez użytkownika

0

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?

0

a co te wątki mają robić?

0

wysyłać i pobierać dane z mojej strony (http)

0

a po co tworzyć wątek? nie może być Task ?

0

O taski właśnie mi chodzi. Dlatego pisałem, że kombinowałem z TaskList i Parallel.ForEach

0

Mógłbyś trochę bardziej objaśnić problem? Chcesz jedną akcję (pobranie danych) wykonywać w kilku taskach?

0

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

1

Ale jaki jest sens pobierać te same dane w 3 taskach ? Czy masz jakąś pulę tych operacji ?

0

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...

0

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ć.

0

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

0

Najprościej tak.

var operationsToWaitFor = new List<Task>();
for (int i = 0; i <  numberOfTasks; i++)
{
  operationsToWaitFor.Add(Task.Run(() => {}));
}
await Task.WhenAll(operationsToWaitFor);
0

Dziękuje, właśnie o to mi chodziło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1