2010-12-31 4 views
0

직렬 포트에서 데이터를 읽었지만 SerialPort의 DataReceived 이벤트는 자체 스레드에서 처리됩니다. 이 스레드를 주 스레드에서 처리하려고하지만 단순히 이벤트를 선언하고 올리면 여전히 SerialPort 스레드에서 처리됩니다. 호출 할 수있는 대리자를 선언해야한다고 가정하고 있지만 어떻게 작동되는지는 알 수 없습니다.별도의 스레드에서 주 스레드에서 메소드를 실행할 수 있습니까?

예를 들어, HandleDataReceived()를 주 스레드에서 실행하는 DataReceived 스레드의 주 스레드에서 Sub HandleDataReceived()를 호출하려고합니다. 어떻게하면 좋을까요?

답변

1

주 스레드가 UI 스레드이면 SynchronizationContext을 사용하거나 Control.BeginInvoke을 호출 할 수 있습니다.

+0

감사합니다. Control.BeginInvoke에 대해 더 자세히 살펴볼 것입니다. 내 요구에 더 적합 해 보입니다. – Steven

+0

@Steven : 천만에. 빈 확인을 클릭하여이 대답을 수락해야합니다. – SLaks

+0

그래, 나는 그것이 작동하게 할 수 있는지보기를 기다리고 있었다. 다시 한 번 감사드립니다! – Steven

관련 문제