병렬로 실행되는 여러 개의 작업이있는 시스템을 설계하고 있습니다. 각각은 입력을 받아서 그래픽 출력을 벡터 형식으로 반환해야합니다. 벡터 형식의 그래픽을 한 스레드에서 다른 스레드로 반환하는 방법은 무엇입니까?
주 WPF 응용 프로그램은 사용자 요청시 이러한 작업의 결과를 그려야합니다. 현재 Canvas, Rectangle 및 기타 System.Windows.Shapes를 출력용 그래픽 벡터 형식으로 사용하고 있습니다. 작업이 완료되면 Canvas 하위를 가져와 GUI 실제 Canvas에 하나씩 추가합니다. 그러나 UI 요소를 주 스레드 (소위 Dispatcher 스레드) 이외의 다른 스레드에서 만들 수 없음을 발견했습니다. http://social.msdn.microsoft.com/Forums/ar/wpf/thread/c4600372-342c-4ee4-b49c-d9abf967fc93
사용자가 출력을 요청할 때마다 표시되어야하므로 UI 요소의 생성을 주 스레드로 위임하는 것은 나를위한 옵션이 아닙니다. 끝마친.
사실 저는 다른 스레드에서 UI 요소를 만들 필요가 없습니다. 벡터 그래픽을 만들고 나중에 WPF 응용 프로그램에서 나중에 표시하는 편리한 방법이 필요합니다.
누구에게 아이디어가 있습니까?
당신은 하나 개의 스레드에서 그러한 직렬화는 필요할 때 UI 스레드에서 그들을 역 직렬화 할 수 있나요? – Rachel
레이첼, 스레드에 항목을 만들어야하기 때문에 할 수 없습니다. 즉시 예외를 throw합니다. 물론, ** 문자열 ** XML을 만들고 메인 스레드에서 비 직렬화 할 수 있지만, 너무 번거 롭습니다. –
표시 할 내용을 설명하는 * 작업을 수행 한 다음 UI 스레드에서 결과 요소를 만들어야합니다. 예를 들어 실제 S.W.S.Rectangle을 만드는 대신 더 많은 정보 (x, y, transforms 등)로 Rect를 만들고이 정보로 실제 Rectangle을 생성 할 수 있습니다. – Will