Использование Rx.Net 3
С помощью планировщика Quartz.Net я создаю диспетчер рабочих процессов для цепочки заданий (используя Quartz Joblistener для готовых заданий) со встроенным веб-сервером. Приложение создает экземпляр субъекта (синглтон).
Веб-служба берет данные и запускает рабочий процесс, вводя уникальный идентификатор. Этот уникальный идентификатор распространяется через рабочий процесс. Делегат Joblistener обнаруживает конец определенного задания и вызывает OnNext для внедренного экземпляра Subject с типом, содержащим уникальный идентификатор и идентификатор таблицы БД.
Идея заключалась в том, что веб-сервис при каждом звонке подписывается на Субъект и ждет входящие сообщения/события и фильтрует их по уникальному идентификатору. При обнаружении удаляет подписку, собирает и возвращает сгенерированные данные вызывающему объекту.
Как я могу заставить свой Subscribe() ждать входящие сообщения, фильтровать их и Dispose(), не завершая преждевременно веб-службу.