Esempio n. 1
0
        static void Main(string[] args)
        {
            SideTask task = new SideTask(100);
            Thread   t    = new Thread(task.KeepAlive);

            Console.WriteLine("Starting Thread...");
            t.Start();
            Thread.Sleep(100);

            Console.WriteLine("스레드 중지 메소드 실행");
            t.Abort(); // 스레드 취소 메소드 실행

            Console.WriteLine("메인 스레드 종료");
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            SideTask task = new SideTask(100);
            Thread   t    = new Thread(task.KeepAlive);

            Console.WriteLine("Starting thread...");
            t.Start();
            Thread.Sleep(100);

            Console.WriteLine("스레드 중지 메소드 실행");
            //t.Abort();  // 스레드 취소 메소드 실행(즉시 종료)
            t.Interrupt();  // 스레드가 Running이 아닌 WaitJoinSleep 상태일 때 예외를 던짐.

            Console.WriteLine("메인 스레드 종료");
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            SideTask st = new SideTask(100);
            Thread   t  = new Thread(st.KeepAlive);

            Console.WriteLine("스레드 시작");
            t.Start();
            Thread.Sleep(100);  // 0.1 초 멈춤

            Console.WriteLine("스레드 중지 명령 실행");
            //t.Abort();
            t.Interrupt();  // 스레드가 Running 상태이면 기다리다가, WaitJoinSleep 상태일 때 죽임.

            Console.WriteLine("메인 스레드 종료");
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            SideTask task = new SideTask(100);
            Thread   t    = new Thread(task.KeepAlive);

            Console.WriteLine("Starting thread...");
            t.Start();
            Thread.Sleep(100);

            Console.WriteLine("스레드 중지 메소드 실행");
            t.Abort();  // 스레드 취소(종료), 스레드를 죽인다. , Abort() 메소드를 호출하면 CLR은 해당 스레드가 실행 중이던 코드에 ThreadAbortException 예외를 던진다.
            //t.Interrupt();  // 스레드가 Running인 상태를 피해 WaitJoinSleep 상태에 들어가면 ThreadInterruptedException 예외를 던진다.

            Console.WriteLine("Wating until thread stops...");
            t.Join();  // 스레드가 완전히 정지할 때까지 대기한다.

            Console.WriteLine("Finished");
        }