Как завершить поток? - C#
Формулировка задачи:
Проблема в том, что создается поток, который нужно завершить нажатием кнопки
Создался поток
Нужно завершить
Так не работает, вызывается ошибка, что делать?
Листинг программы
- public void button1_Click(object sender, EventArgs e)
- {
- Thread Thread = new Thread(server_tcp) { IsBackground = true };
- Thread.Start();
- //abort(Thread);
- //Thread MyThread = new Thread(server_tcp);
- //MyThread.Start();
- }
Листинг программы
- public void button2_Click(object sender, EventArgs e)
- {
- Thread.Abort();
- Thread.Join();
- }
Решение задачи: «Как завершить поток?»
textual
Листинг программы
- namespace Nya.ExitThread
- {
- class Program
- {
- static void Main(string[] args)
- {
- using (var tokenSource = new CancellationTokenSource())
- {
- var thread = new Thread(new ParameterizedThreadStart((parameter) => {
- var token = (CancellationToken)parameter;
- while (!token.IsCancellationRequested)
- {
- Thread.Sleep(5000);
- if (token.IsCancellationRequested)
- break;
- else
- Console.WriteLine("Nya! {0}", DateTime.Now);
- }
- }));
- thread.Start(tokenSource.Token);
- while (Console.ReadLine() != "exit")
- ;
- tokenSource.Cancel();
- thread.Join();
- }
- Console.WriteLine("program stoped!");
- Console.ReadKey();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д