c# 멀티스레드 예제

예를 들어 응용 프로그램에서 일련의 데이터를 검색하고 사용자에게 표시하는 간단한 데이터베이스 기반 데스크톱 응용 프로그램 개발 시나리오를 고려하십시오. 이제 어떤 이유로 데이터베이스 연결이 느려지면 응용 프로그램이 일반적으로 멈을 수 있습니다. 사용자는 다른 작업을 수행할 수 없지만 프로세스가 완료될 때까지 기다립니다. 이러한 경우 응용 프로그램이 데이터베이스에서 데이터를 검색하는 동안 사용자가 다른 작업을 수행할 수 있도록 스레드 기반 구현을 멋지게 디자인하고 대규모로 유용성을 향상시킬 수 있습니다. (int i = 0; i <j; i++) { Console.WriteLine("하위 스레드 값은 : " + i); 스레드.수면 (1000); } 콘솔.WriteLine("안녕!!! 나는 하위 스레드입니다"); } }스레드에서 주기적 연산 perodic 순서로 메서드 호출을 수행 하려는 경우 타이머 클래스를 사용할 수 있습니다. 참고 : .net framework 클래스 라이브러리가 있는 세 개의 타이머 클래스가 있습니다.system.Windows.Forms 네임스페이스에 있고 마지막 타이머는 System.Windows.Forms 네임스페이스에 있으며, 마지막 타이머는 모두 비슷한 진균을 제공하므로 하지 마십시오. 함께 그들을 혼동,나는 여기에 대해 얘기하고있다 System.Threading.Timer 클래스예 : 타이머 클래스 클래스 프로그램 { 정적 보이드 메인 (문자열 [] args) { / 스레드 타이머를 할당하여 작업을 수행 합니다 System.Threading.Timer thrdTimer = 새 타이머 (실행, 10, 0, 1000); End Module위의 코드에서 실행 메서드를 실행하기 위해 별도의 스레드를 사용했습니다. 코드가 실행될 때 outputSub 스레드는 실행 메서드 내에서 값을 늘리고 주 스레드는 해당 값을 차례로 줄입니다. 새 스레드를 만들고 수행할 작업을 할당한 부분은 다음과 같습니다.

스레드 시작 대리자 인스턴스 만들기 – 스레드 ThreadStart ts = 새 ThreadStart(run)에서 실행할 메서드가 포함되어 있습니다. 새 스레드 스레드 thrd 만들기 = 새 스레드(ts); 스레드 thrd를 시작합니다. start();여기에서 스레드 시작 대리자는 선택 사항이며 이와 같은 스레드를 직접 만들 수 있습니다 // 새 스레드 스레드 thrd = 새 스레드(run)를 만들 수 있습니다. 스레드 thrd를 시작합니다. 시작(); 참고 : 이것은 C # 언어 바로 가기이며 VB.net.Make 스레드에서 사용할 수 없습니다 이 스레드는 메인 스레드가 작업을 완료하더라도 실행 상태로 남아 있으며, 주 스레드가 죽을 때 모든 스레드를 마무리하려면 IsBackground 속성을 설정해야합니다. 사실. ParameterizedThreadStart 대리자 인스턴스 thrd = 새 스레드(run)를 사용하여 새 스레드를 만듭니다. 스레드 배경을 thrd합니다. IsBackground = true; 매개 변수를 전달스레드를 시작하려면 thrd가 필요합니다.

시작(); 스레드에 매개 변수를 전달새 스레드에 의해 실행 하는 데 사용 되는 메서드에 모든 매개 변수를 전달 하려는 경우 다음 사용할 수 있습니다ParamerizedThreadStart 대리자 대신 ThreadStart 대리자. 예: ParameterizedThreadStart를 사용하여 매개 변수를 사용하여 메서드를 호출하는 ParameterizedThreadStart 는 별도의 스레드에서 메서드를 실행하는 데 사용한 이 공용 대리자 voidParameterizedThreadStart(개체 obj)와 같습니다. 그래서 우리는 다음과 같은 우리의 실행 방법을 변경해야 (ParameterizedThreadStart와 일치) /* 이 방법은 별도의 스레드에 의해 실행 * 이 sholud는 ParameterizedThreadStart와 일치합니다 * (매개 변수는 객체로 전달되어야) */ 정적 보이드 런 (개체 args) { 우리의 매개 변수 int j = (int)args를 캐스팅; 어떻게 든 선택을 통해 도전을 하는 개발자에 게 다음 왜 우리는 스레드를 사용 해야 합니까? 그래서 만약 이것이 그렇게 비용이 많이 드는 과정이라면 왜 스레드를 사용해야합니까? 대답은 지난 몇 년 이내에 프로세서는 특히 속도에 급속한 개발을했다. 요즘 시장에서 프로세서는 3GHz 주위 속도- 4GHz.때 프로세서는 인텔등이 수준의 프로세서 공급 업체에 올 때, AMD는 프로세서가 그들이 사용해야 하는 환경과 점점 더 속도를 할 수 없다는 것을 통보하는 데 사용.

Dark Bugsyc# 멀티스레드 예제