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

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

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

Уточните как завершить поток и работу метода полностью?
Thread a = new Thread(function);
a.IsBackground = true;
a.Start();
 
Thread.sleep(100000);
 
a.Aboat();
//a.Join();
 
void function()
{
 
test t = new test();
 
t.step += () => {};
t.step2 += () => {};
 
}
Я предполагал, что при вызове a.Aboat(); поток завешиваться полностью, по аналогу закрытия программы, но к сожалению это не так и при вызове a.Aboat(); function() с потоком продолжает спокойно работать. Как убить поток полностью? В чём ошибка моего подхода?

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

textual
Листинг программы
using System;
using System.Net.Sockets;
using System.Threading;
 
namespace ConsoleApplication212
{
    class Program
    {
        static void Main()
        {
            var th = new Thread(DoSomething);
            th.Start();
            Thread.Sleep(100);//дожидаемся старта потока
 
            th.Abort();//пытаемся остановить поток, но он не остановится
        }
 
        static void DoSomething()
        {
            var list = new TcpListener(3333);
            list.Start();
            var tcp = list.AcceptTcpClient();
        }
    }
}

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


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

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

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