Backgorund worker и потоки - C#

Узнай цену своей работы

Формулировка задачи:

в общем есть backgroundowrket где вызывается класс где вызывается функция , как видете в ней создаются потоки ! Вопрос как оследить пока каждый из потоков закончится ? чтобы ЛИШЬ ЗАТЕМ закрыть background worker!
private void DownloadPageAsync()
        {
            string[] lines = null;
            form1.Invoke(new System.Windows.Forms.MethodInvoker(()=> lines = form1.richTextBox_Dork.Lines));
 
            ProxySet();
            foreach (var dork in lines)
            {
                if (dork == "")
                {
                    continue;
                }
                
                System.Threading.Thread thrd = new System.Threading.Thread(startCircyle);
                thrd.IsBackground = true;
                thrd.Start(dork);
 
             }
            int c = 0;
        }

Решение задачи: «Backgorund worker и потоки»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
 
namespace ConsoleApplication5 {
    class Program {
        static void Main(string[] args) {
            Task[] tasks = new Task[10];
            for (int i = 0; i < tasks.Length; i++) {
                tasks[i] = new Task(() => Run());
            }
            foreach (Task t in tasks) {
                t.Start();
            }
            Task.WaitAll(tasks);
            
            Console.WriteLine("All tasks completed!");
            Console.ReadLine();
        }
        static void Run() {
            Thread.Sleep(500);
            Console.WriteLine("Id of that thread is: {0}", Thread.CurrentThread.ManagedThreadId);
        }
    }
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

6   голосов , оценка 3.667 из 5