2010-08-20 3 views
0

내 응용 프로그램의 주 스레드에서 일부 비동기 작업을 수행하고 있습니다. 주 스레드를 정기적으로 폴링하고 주 스레드의 값을 확인하는 작업자 스레드가 필요합니다.작업자 스레드에서 주 스레드의 속성 값을 확인하려면 어떻게합니까?

어떻게하면됩니까? 기본 스레드가 수신하는 작업 스레드에서 이벤트를 발생시킬 수 있습니까? 양방향 통신. 당신이 WPF를 사용하는 경우

감사합니다 ..

답변

1

또 다른 "수동"방법으로 여기서 원하는 것을 성취 할 수 있습니다. 메인 쓰레드가 관심의 값을 확인하고 작업자 스레드에 리셋 이벤트를 보낼 수 있습니다으로 ManualResetEvent에서

  1. 봐 (및 AutoResetEvent를, 필요에 따라) 스레딩 라이브러리입니다. 이것들은 작업자 스레드와 메인 스레드 사이의 시그널링을위한 매우 간단하고 더러운 메커니즘입니다.

  2. 합리적인 기간에 값을 확인하는 주 스레드에서 타이머/콜백을 만듭니다. 원하는 값이 true로 평가되면 신호를 작업자 스레드로 보내는 이벤트를 설정하십시오.

0

, 당신은 작업자 스레드가 메인 스레드에서 데이터를 얻기 위해 WPF 윈도우의 Dispatcher.Invoke 메서드를 호출 할 수 있습니다. WinForms를 사용하는 경우 폼 자체에 "Invoke"메서드가 있으며 "InvokeRequired"메서드를 검사하여 Invoke 메서드를 호출해야하는지 확인할 수 있습니다.

관련 문제