Принудительное завершение потока. 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;
}
}
}
}
}