Как завершить поток? - C#

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

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

Проблема в том, что создается поток, который нужно завершить нажатием кнопки
Листинг программы
  1. public void button1_Click(object sender, EventArgs e)
  2. {
  3. Thread Thread = new Thread(server_tcp) { IsBackground = true };
  4. Thread.Start();
  5. //abort(Thread);
  6. //Thread MyThread = new Thread(server_tcp);
  7. //MyThread.Start();
  8. }
Создался поток Нужно завершить
Листинг программы
  1. public void button2_Click(object sender, EventArgs e)
  2. {
  3. Thread.Abort();
  4. Thread.Join();
  5. }
Так не работает, вызывается ошибка, что делать?

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

textual
Листинг программы
  1. namespace Nya.ExitThread
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             using (var tokenSource = new CancellationTokenSource())
  8.             {
  9.                 var thread = new Thread(new ParameterizedThreadStart((parameter) => {
  10.                     var token = (CancellationToken)parameter;
  11.                     while (!token.IsCancellationRequested)
  12.                     {
  13.                         Thread.Sleep(5000);
  14.                         if (token.IsCancellationRequested)
  15.                             break;
  16.                         else
  17.                             Console.WriteLine("Nya! {0}", DateTime.Now);
  18.                     }
  19.                 }));
  20.                 thread.Start(tokenSource.Token);
  21.  
  22.                 while (Console.ReadLine() != "exit")
  23.                     ;
  24.                 tokenSource.Cancel();
  25.                 thread.Join();
  26.  
  27.             }
  28.  
  29.             Console.WriteLine("program stoped!");
  30.             Console.ReadKey();
  31.         }
  32.     }
  33. }

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


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

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

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

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

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

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