여러 개의 .NET 어셈블리 (하나의 기본 실행 파일과 클래스 라이브러리 집합)로 분할 된 응용 프로그램을 개발 중입니다. 현재 WPF GUI를 사용하고 있지만 나중에 다른 GUI 프레임 워크로 전환 할 수있는 유연성을 유지해야합니다.C# .NET 이벤트 및 다중 스레드
여기 내 문제가 있습니다. 클래스 라이브러리 중 하나가 별도의 스레드에서 작업을 수행하고 해당 스레드가 완료되면 이벤트를 발생시킵니다. 신속하게 내 WPF GUI가이 이벤트 핸들러에서 구성 요소를 수정하려고 할 때 화가났다는 것을 알았 기 때문에 System.Windows.Threading.DispatcherTimer를 사용하여 주 스레드에서 이벤트를 전달하는 "이벤트 대기열"을 구현했습니다. 이것은 일을했다. 그러나이 DispatcherTimer가 WPF 응용 프로그램의 컨텍스트 내에서만 작동한다는 사실을 알게되어 놀랐습니다.
이 클래스 라이브러리 내에서 멀티 스레딩의 모든 추악한 내용을 숨기려고합니다. 결국 WPF가 아닌 GUI와 함께 사용할 수 있습니다. 아이디어는 소비하는 응용 프로그램이 이벤트 처리기 내에서 GUI를 업데이트 할 수 있어야한다는 것입니다. 그래서, 내 질문은 다른 스레드에서 이벤트를 발생시키는 표준 메서드 (특정 GUI 프레임 워크와 독립적)가 있습니까 ??
도움을 주시면 감사하겠습니다. 감사.