2011-10-18 6 views
1

기본 UI와 각각 별도의 스레드에서 실행되는 2 개의 모드없는 창이있는 응용 프로그램이 있습니다. 개체를 스레드에서 스레드로 전달할 때 보조 스레드의 주 스레드에서 실행중인 개체의 복사본을 만듭니다. 개체 자체를 업데이트하고 변경된 내용을 코드 및 보조 스레드로 계속 전달하려면 어떻게해야합니까? 보조 스레드는 항상 이전 개체의 복사본을 유지하고 스레드가 종료되거나 중지 된 다음 다시 생성되지 않는 한 업데이트하지 않습니다.다중 스레드 C# 응용 프로그램

+9

왜 개체 복사본을 만드나요? 동일한 객체를 여러 스레드에서 참조하고 동시성 의미를 사용하여 객체에 대한 변경 사항을 최소화하는 것이 훨씬 간단합니다. –

답변

0

여러 가지 방법으로 해결할 수 있습니다. 하나는 객체에 대한 저장소의 스레드 안전 공유 인스턴스입니다. 한 스레드가이를 업데이트하면 다른 스레드는 업데이트 된 사본을 얻습니다. 이 작업을 쉽게하기 위해 WCF를 사용할 수 있습니다. 몇 가지 아이디어는 this article on WCF and concurrency을 참조하십시오. 귀하의 질문에 대한 @Eric J의 의견을 구현 한 것입니다.

이벤트를 통해 스레드를 조정해야합니다. 하나의 스레드가 객체를 업데이트하면 다른 객체로 이벤트가 전송됩니다. 개체가 자주 변경되지 않으면 충분할 수 있습니다.

This question 세 번째 가능성에 대한 이야기 ​​: BackgroundWorker.

+0

잘 wff 및 메신저 호출의 대다수에 대한 디스패처를 사용하여 메신저 ...이 개체를 업데이트해야하지만 – jharr100

+0

해당 본문에 해당 정보를 포함하도록 편집을 제출하고 적절하게 태그를. WPF 경험이 부족하여 더 이상 보좌관을 제공 할 수 없습니다. 행운을 빕니다! – neontapir

관련 문제