Я создал библиотеку компонентов, которая включает в себя класс executive , который работает с любым количеством потоков и запускает события из этих потоков.Это все хорошо.Теперь я хочу использовать своего руководителя в настольном приложении.(Winforms в первом случае, WPF позже), поэтому я хочу перенаправить все вызовы событий обратно в поток пользовательского интерфейса.Я знаю 3 способа сделать это;
- Проверить IsInvokedRequired / вызвать Invoke в обработчиках;Это неудачное ИМО.
- Создать декоратор для руководителя, который использует асинхронную модель базы событий;Дает мне желаемый результат, хотя и не очень захватывающий.
- Используйте диспетчер WPF;считает неправильным использовать класс WPF в приложении Winforms.или, что еще более неправильно, использовать его в компоненте lib.
Я провел последний час или около того, читая Rx, и я думаю, что идеальным решением может быть внедрение Rx в исполнительную ипоручить исполнителю (необязательно) планировщик.Таким образом, клиент руководителя может определить поведение в отношении того, в каком потоке / ах создаются события, и я получаю все остальные качества Rx.Или, возможно, создайте RxExecutive, который использует планировщик и инкапсулирует мой существующий руководитель для обеспечения Rx API.
Я думаю по правильному пути или я упустил суть?