Реализация пользовательского действия Windows Workflow, которое выполняет асинхронную операцию

У меня возникают некоторые концептуальные проблемы с выяснением, как лучше всего реализовать это ... Я хочу создать собственный класс Activity для Windows Workflow. Действие должно вызывать метод сторонней библиотеки, который сам выполняет другой процесс асинхронно и может занять от нескольких секунд до многих часов. Эта библиотека предоставляет мне возможность либо опросить результат метода, либо подписаться на событие, которое указывает на его завершение. В моих приложениях, не относящихся к рабочему процессу, я обычно просто подписываюсь на это событие, но в случае с рабочим процессом это не кажется разумным. Я также не уверен, как именно реализовать схему опроса. Может кто-нибудь порекомендовать некоторые указатели на подобные проблемы?

1 ОТВЕТ
РЕШЕНИЕ

Кирк Аллен Эванс написал интересный блог об этом с некоторыми довольно хорошими примерами кода.

1
24.08.2008 12:51:43
Я все еще изучаю WF, ... Почему Кирк не вызывает ActivityExectionContext.CloseActivity () в Workflow.Ftp.FtpCallback () напрямую? Вместо этого он помещает что-то в очередь, которую он создает, и затем вызывает функцию прослушивания очереди CloseActivity (). Это похоже на много лишних накладных расходов.
Frank Schwieterman 26.11.2008 13:49:20