C#에서 스레드 중지

Saad Aslam 2023년10월12일
C#에서 스레드 중지

때때로 C#에서 스레드로 작업하는 동안 스레드를 종료해야 하는 상황이 발생할 수 있습니다. C#은 이를 성공적으로 수행할 수 있는 방법을 제공하며 이 기사는 C#에서 스레드를 종료하는 프로세스를 설명하는 것을 목표로 합니다.

스레드를 종료한다는 목표를 위해 Abort() 메서드를 사용할 것입니다. ThreadAbortExceptionAbort() 메서드에 의해 호출된 스레드에 throw되고 이 예외에 대한 응답으로 스레드가 종료됩니다.

스레드를 중지하려면 먼저 스레드를 시작해야 합니다. 스레드 생성을 완료하려면 다음 단계를 따르십시오.

Abort() 메서드를 사용하여 C#에서 스레드 중지

System.Threading 라이브러리의 메소드를 활용하여 스레드를 시작하고 종료하려면 가져오십시오.

using System.Threading;

ThreadDemo 클래스를 만들어야 합니다.

class ThreadDemo {}

이 클래스 내에서 First Thread를 네 번 반복하고 출력하는 루프를 사용하여 threadAssign()이라는 스레드 메서드를 만듭니다.

public void threadAssign() {
  for (int threadCount = 0; threadCount < 6; threadCount++) {
    Console.WriteLine("First Thread");
  }
}

그런 다음 메인 함수를 포함하여 ThreadExampleMain이라는 새 클래스를 생성합니다.

class ThreadExampleMain {
  public static void Main() {}
}

Main() 메서드 내에서 스레드를 시작 및 중지하려면 다음 작업을 수행해야 합니다. ThreadDemo 데이터 유형으로 threadDemo 변수를 생성하고 초기화합니다.

ThreadDemo threadDemo = new ThreadDemo();

Thread 클래스를 사용하여 새 변수를 초기화하고 이전에 생성한 스레드에 할당합니다.

Thread thread = new Thread(new ThreadStart(threadDemo.threadAssign));

스레드는 Start() 함수를 호출하여 시작할 수 있습니다.

thread.Start();

마지막으로 System.Threading 라이브러리의 Abort() 메서드를 사용하여 스레드를 종료할 수 있습니다. 스레드가 종료되었음을 나타내기 위해 "Thread is Abort"도 인쇄합니다.

Console.WriteLine("Thread is abort");
thread.Abort();

소스 코드:

using System;
using System.Threading;

class ThreadDemo {
  void threadAssign() {
    for (int threadCount = 0; threadCount < 6; threadCount++) {
      Console.WriteLine("First Thread");
    }
  }
  class ThreadExampleMain {
    public static void Main() {
      ThreadDemo threadDemo = new ThreadDemo();
      Thread thread = new Thread(new ThreadStart(threadDemo.threadAssign));
      thread.Start();
      Console.WriteLine("Thread is abort");
      thread.Abort();
    }
  }
}

출력:

First Thread
First Thread
First Thread
First Thread
First Thread
First Thread
Thread is abort
작가: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

관련 문장 - Csharp Thread