Принудительное завершение потока. Thread - C#

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

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

Здравствуйте, мне нужно принудительно завершить фоновой поток при таком раскладе. Есть функция
Листинг программы
  1. public void func()
  2. {
  3. new class(); // В этом классе происходит обработка в цикле
  4. }
Вызываю ее так.
Листинг программы
  1. th = new Thread(func);
  2. th.IsBackground = true;
  3. th.Start();
Пытаюсь остановить ее таким образом.
Листинг программы
  1. if (th != null)
  2. th.Abort();
Но ничего не выходит функции класса продолжают работать в потоке, как мне принудительно завершить поток?

Решение задачи: «Принудительное завершение потока. Thread»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7.  
  8. namespace ConsoleApplication3 {
  9.     class Program {
  10.         static void Main(string[] args) {
  11.             CancellationTokenSource token = new CancellationTokenSource();
  12.             Task.Factory.StartNew(() => { Foo(token.Token); });
  13.             Thread.Sleep(5000);
  14.  
  15.             token.Cancel();
  16.  
  17.             Console.ReadLine();
  18.         }
  19.         static void Foo(CancellationToken token) {
  20.             while (true) {
  21.                 Console.WriteLine("Running...");
  22.                 Thread.Sleep(1000);
  23.                 if (token.IsCancellationRequested) {
  24.                     Console.WriteLine("Canceled...");
  25.                     return;
  26.                 }
  27.             }
  28.         }
  29.     }
  30. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут