Jak wykorzystać wątki w odpowiedni sposób?

0

Cześć.
Mam metodę, która wykonują pewną czynność, która zajmuje dużo czasu (średnio około 2 minuty). Chciałbym zaprogramować ją w taki sposób, że metoda zakończy się (return true;) dopiero po wykonaniu tej czynności (a w zasadzie tych czynności). Zrobiłem tak, ale kod nie wygląda zbyt dobrze. Do tego jest pewnie niewydajny.

// Oczywiście zmienne i metody tak się nie nazywają w projekcie
Thread[] wondki = new Thread[cosTam.Length];
Thread firstThread = new Thread(SendMessages);
firstThread.Start();

// Te wątki wykonują dużo więcej pracy niż firstThread
for (int i = 0; i < wondki.Length; ++i)
{
    wondki[i] = new Thread(CreateTopic);
    wondki[i].Start(cosTam[i]);
}

// Poczekaj aż wątki wykonają robotę
for (int i = 0; i < wondki.Length; ++i)
    wondki[i].Join();

// Wypierdol wątki
ddlSitesThread.Join();
ddlSitesThread.Abort();

for (int i = 0; i < wondki.Length; ++i)
    wondki[i].Abort();

Z czego i jak skorzystać? Tasks, ThreadPool?

0

@spartanPAGE: Chciałem wprowadzić trochę śmiechu w tym smutnym tuskolandzie. :P

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