c# 쓰레드 예제

스레드의 우선 순위를 높이면 응용 프로그램의 프로세스 우선 순위에 의해 계속 제한되므로 실시간 작업을 수행할 수 없습니다. 실시간 작업을 수행하려면 System.Diagnostics의 프로세스 클래스를 사용하여 프로세스 우선 순위를 높여야 합니다(이 작업을 수행하는 방법을 알려주지 않았습니다): 언제든지 IsBackground 속성을 설정하여 백그라운드에서 실행하도록 스레드를 변경할 수 있습니다. 백그라운드 스레드는 응용 프로그램이 실행되는 동안 계속되어야 하지만 파일 시스템 변경 또는 들어오는 소켓 연결 모니터링과 같이 응용 프로그램이 종료되는 것을 방지해서는 안 되는 모든 작업에 유용합니다. (이 수치는 하드웨어 및 운영 체제에 따라 다를 수 있습니다.) 많은 사람들이 일부 스레드가 차단되어야 (원격 컴퓨터의 응답과 같은 일부 조건을 기다리는 동안 공회전)해야 진행률을 보장하기 위한 것입니다. 스레드 풀의 최소 스레드 수를 x로 늘리는 것은 실제로 x 스레드를 즉시 만들도록 강요하지 않습니다. 대신 풀 관리자에게 필요한 즉시 최대 x 스레드를 만들도록 지시합니다. 그렇다면 스레드 풀이 필요할 때 스레드를 만드는 데 지연되는 이유는 무엇입니까? 스레드 풀은 풀에 하나의 스레드로 시작합니다. 작업이 할당되면 풀 관리자는 최대 한도까지 추가 동시 워크로드에 대처하기 위해 새 스레드를 ”삽입”합니다. 충분한 기간 동안 활동이 없으면 풀 관리자는 스레드를 ”폐기”할 수 있습니다.

따라서 위의 예에 따라 스레딩을 사용하면 비동기적으로 뮤티플 작업을 실행할 수 있다는 결론을 내렸습니다. Main 메서드도 단일 스레드에서 실행된다는 것을 알고 있으므로 Main 메서드에서 다른 메서드를 스레드에 연결할 때 다중 스레드 응용 프로그램을 만드는 것을 의미합니다. 포그라운드 스레드는 Main 메서드 스레드가 프로세스를 종료하더라도 작업이 완료될 때까지 계속 실행되는 스레드입니다. 당신이 더 나은 이해하게하기 위해 내가 당신을 보여 보자. 전경 스레드의 수명은 주 스레드에 의존하지 않습니다. 다음 예제에서는 특정 기간 동안 스레드를 일시 중지하기 위한 sleep() 메서드의 사용을 보여 줍니다. Thread.Sleep은 지정된 기간 동안 현재 스레드를 일시 중지합니다: C#은 멀티스레딩을 통해 코드의 병렬 실행을 지원합니다. 스레드는 다른 스레드와 동시에 실행할 수 있는 독립적인 실행 경로입니다. 설명: 위의 예제에서는 mythread1()라는 비정적 메서드를 포함하는 ExThread라는 클래스가 있습니다. 따라서 ExThread 클래스의 obj 와 이 문에서 주어진 대로 ThreadStart 클래스의 생성자에서 참조 하는 인스턴스를 만듭니다 . 스레드 a = 새 스레드(새 스레드 시작(obj.mythread1))를 사용); 문 우리는 thr로 명명 된 스레드를 만들고이 스레드의 작업을 초기화 할 것입니다.

Thr를 사용 하 여. 시작(); 문을. 반면에 인수가 Main()으로 전달되면 작업자가 백그라운드 상태가 할당되고 주 스레드가 종료되면 프로그램이 거의 즉시 종료됩니다(ReadLine 종료). 스레딩 응용 프로그램을 만들기 위해 스레딩을 구현하기 위해 정기적으로 사용되는 몇 가지 중요한 방법이 있습니다. 현재 스레드의 다양한 컨텍스트에 대한 정보가 포함된 ExecutionContext 개체를 가져옵니다. 이름입니다. 이름은 스레드를 식별하는 데 사용할 수 있는 쓰기-한 번 속성입니다. 기본값은 null입니다. Thread 클래스는 스레드를 관리하기 위한 다양한 방법을 제공합니다. C# 프로그램이 실행을 시작하면 주 스레드가 자동으로 만들어집니다. Thread 클래스를 사용하여 만든 스레드를 주 스레드의 자식 스레드라고 합니다.

Thread 클래스의 CurrentThread 속성을 사용하여 스레드에 액세스할 수 있습니다. 예를 들어 데스크톱, 노트북 또는 모든 장치에서 동시에 Microsoft PPTX 및 Excel을 실행하는 것을 스레딩이라고 합니다.

Kommentarer inaktiverade.