Как реализовать создание и завершение потоков - C#

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

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

Здравствуйте ув.форумчане! Подскажите пожалуйста как реализовать старт и стоп потоков. В библиотеке есть метод старта и останова потоков но он не работает. Исключение: Поток выполняется или прерван; его нельзя запустить повторно. Сам метод:
public static void act(string act, int count_threads)
        {
            Thread th = new Thread(main.run);
            if (act == "start")
            {
                for (int i = 0; i < count_threads; i++)
                {
                    th.Start();
                }
            }
            if (act == "stop")
            {
                try
                {
                    th.Join();
                    th.Abort();
                }
                catch { }
            }
        }
Хочу реализовать примерно вот так:
act("start", 10);//Старт 10-ти потоков
act("stop", 0);//Стоп потоков
Подскажите пожалуйста как реализовать и возможно ли. Заранее благодарен!

Решение задачи: «Как реализовать создание и завершение потоков»

textual
Листинг программы
static void ThreadProc(object arg)
{
   var token = (CancellationToken)arg;
   while (!token.IsCancellationRequested)
      // Do stuff.
}
 
static void Main()
{
   var source = new CancellationTokenSource();
   for (int i = 0; i < 10; i++)
      new Thread(ThreadProc).Start(source.Token);
 
   Console.ReadLine();
   source.Cancel();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

5   голосов , оценка 4.2 из 5
Похожие ответы