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

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

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

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

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

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
 
namespace ConsoleApplication3 {
    class Program {
        static void Main(string[] args) {
            CancellationTokenSource token = new CancellationTokenSource();
            Task.Factory.StartNew(() => { Foo(token.Token); });
            Thread.Sleep(5000);
 
            token.Cancel();
 
            Console.ReadLine();
        }
        static void Foo(CancellationToken token) {
            while (true) {
                Console.WriteLine("Running...");
                Thread.Sleep(1000);
                if (token.IsCancellationRequested) {
                    Console.WriteLine("Canceled...");
                    return;
                }
            }
        }
    }
}

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


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

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

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