첫째, 백그라운드 스레드 이외의 스레드에서 스레드 정렬을 수정하는 데 많은 질문과 해결책이 있다는 것을 알고 있습니다. 내가 찾은 모든 질문과 해결책은 목록 또는 비즈니스 개체 자체가 Windows 양식이 구독 할 수있는 이벤트를 제기 한 다음 주 UI 스레드에 대한 업데이트를 올바르게 마샬링하는 시나리오에 중점을 둡니다.Winforms UI 스레드 백그라운드 스레드에서 업데이트되는 BusinessObject 목록 마샬링
제 경우 비즈니스 개체 목록이 별도의 레이어에있는 백그라운드 스레드에 의해 업데이트되고 있습니다. 이 목록을 주 스레드의 컨트롤에 바인딩하고 싶습니다. 업데이트가 올바르게 정렬 될 수 있도록 비즈니스 객체 목록에서 UI에 이벤트를 표시해야합니까? 비즈니스 개체 목록을 자동으로 업데이트하고 목록 업데이트 이벤트를 UI에 노출시키지 않고 이러한 업데이트를 UI에 전파 할 수 있습니까?
편집 :
내 문제는 본질적으로 이것이다 : 속성을 변경 한 후 INotifyProperty 해고되고 변경되었습니다. 이벤트를 발생시키는 thread가 UI thread가 아닌 경우,이 인터페이스를 구현하는 객체에 바인드 된 컨트롤은 갱신을 시도합니다. 따라서 업데이트 할 스레드가 스레드 안전 방식으로 처리 될 수 있도록 업데이트하려는 UI 스레드에 알릴 필요가 있습니다. 즉, 스레드를 업데이트하는 백그라운드 스레드가 단순히 비즈니스를 수행 할 수 없으며 개체를 업데이트 할 수있는 권한을 요청해야합니다 UI를 대신하여 객체를 변경하도록 요청할 수 있습니다. 이것은 UI가 개체 업데이트를 처리하는 것을 의미합니다.
ThreadedBindingList가 실제로 멋지게 보입니다. 나는 그것을 약간의 시운전에 가져갈 것이라고 생각한다. –
감사합니다. 마크 (Marc) 한 번 보겠습니다. – AndyMM
Marc 님이 UI에서 업데이트를 처리하도록 제안 하시겠습니까? 내 의견을 아래 Yoopergeek에 보냅니다. – AndyMM