using System;
using System.Threading;
namespace ConsoleApplication1
{
public class thread_test
{
public void func()
{
while (true)
{
Console.WriteLine("in func() function");
}
}
}
class Program
{
static void Main(string[] args)
{
try
{
thread_test tt = new thread_test();
// Create thread - func() running in its own thread - trd
Thread trd = new Thread(new ThreadStart(tt.func));
Console.WriteLine("trd Start");
trd.Start();
// waiting for thread to become alive
while (!trd.IsAlive); // note the ;
// Put the Main(string[] args) thread to sleep for 3 millisecond
// In this time our trd start working
Thread.Sleep(3);
trd.Abort();
// Wait until a thread terminates
trd.Join();
Console.WriteLine("trd end");
// Aborted threads cannot be restarted - Exception
trd.Start();
}
catch (ThreadStateException)
{
Console.WriteLine("Aborted threads cannot be restarted");
}
}
}
}
/*
run:
trd Start
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
in func() function
trd end
Aborted threads cannot be restarted
*/