MPR | c# manualresetevent 예제
155680
single,single-post,postid-155680,single-format-standard,ajax_fade,page_not_loaded,,select-theme-ver-3.2.1,popup-menu-slide-from-left,wpb-js-composer js-comp-ver-4.12,vc_responsive
 

c# manualresetevent 예제

c# manualresetevent 예제

이 신호 구성을 더 잘 이해하려면 아래 예제를 살펴보십시오. 솔직히 말해서, 뮤텍스가 .NET에 배치되는 원칙적 사용은 앞에서 언급한 것입니다 – 응용 프로그램의 다른 인스턴스가 이미 실행 중임을 감지합니다. 대부분의 사람들은 이러한 수준의 프로세스 간 통신이 필요하지 않습니다. 다른 용도는 WaitHandles 집합 중 하나 또는 전부가 해제될 때까지 차단할 수 있도록 하는 것입니다. 모니터가 충분히 좋은 다른 목적을 위해, 나는 그것을 사용하는 것이 좋습니다 – 특히 C #에는 특히 이를 지원하기 위해 lock 문이 있습니다. 그러나 실행 중인 응용 프로그램을 검색하는 예는 다음과 같습니다. 이러한 스레드는 WaitOne 메서드를 호출할 때 차단 되지 않고 대신 완료 에 실행 됩니다. Enter 키를 다시 누르면 예제에서 재설정 메서드를 호출하고 WaitOne을 호출할 때 차단하는 스레드를 하나 더 시작합니다. Enter 키를 누르면 마지막 스레드를 해제하도록 설정된 마지막 시간 호출이 호출되고 프로그램이 종료됩니다. 다음 예제에서는 ManualResetEvent 작동 방식을 보여 줍니다. 이 예제는 신호가 없는 상태에서 ManualResetEvent로 시작합니다(즉, false는 생성자에게 전달됩니다). 이 예제에서는 WaitOne 메서드를 호출하여 ManualResetEvent에서 각각 세 개의 스레드를 만듭니다. 사용자가 Enter 키를 누르면 세 스레드를 모두 해제하는 Set 메서드를 호출합니다.

한 번에 하나씩 스레드를 릴리스하는 AutoResetEvent 클래스의 동작과 대조하여 각 릴리스 후 자동으로 재설정합니다. 아래 예제에서는 두 개의 별도 스레드에서 작업하는 두 가지 메서드 (Method1, Method2)가 있습니다. 그리고 이 두 가지 방법은 주 스레드가 작업을 계속하기를 기다리고 있습니다. 두 개의 서로 다른 콘솔 창에서 예제를 실행 – 하나는 천천히 10에 계산됩니다; 다른 응용 프로그램 인스턴스가 실행 중임을 감지하면 다른 응용 프로그램 인스턴스가 중단됩니다. 뮤텍스 주변의 using 문: 이 응용 프로그램의 실행 전체에 걸쳐 확장 해야 합니다., 그렇지 않으면 다른 인스턴스 는 이전 된 삭제 된 후 동일한 이름으로 새 뮤 텍스를 만들 수 있을 것 이다. 예를 들어, 다음과 같은 using 문 없이 로컬 변수를 사용 하는 가정: 앞의 예제에서 2 스레드가 만들어집니다., 즉 Thread1 및 Thread2.AutoResetMethod() Thread1에서 실행 되 고 ManualResetMethod() Thread2에서 실행 되 고 다른 사용자가 주 thread.the 메서드에서 동일한 논리를 사용 합니다. 프로그램에서 AutoResetEvent 및 ManualResetEvent를 사용하려면 다음 표에 표시된 대로 스레드를 일시 중지하고 시작하는 2가지 메서드를 제공하는 AutoResetEvent 및 ManualResetEvent의 개체를 만듭니다. 안녕하세요, C # 스레딩 시나리오에서 ManualResetEvent의 실용적인 사용에 대해 알고 싶으십니까? 실용적인 코드 예제와 함께 가장 간단한 신호 구성에 대해이 기사에서 설명합니다. 다음 예제에서는 ManualResetEvent를 사용하여 여러 스레드를 릴리스하는 방법을 보여 주며 있습니다. WaitOne 메서드를 호출 하는 모든 스레드를 차단 하는 거짓 값으로 ManualResetEvent초기화 합니다.

No Comments

Sorry, the comment form is closed at this time.