Выполнение рабочих процессов параллельно - PullRequest
0 голосов
/ 14 декабря 2011

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

1 Ответ

1 голос
/ 14 декабря 2011

Почему вы говорите, что создание нового рабочего процесса довольно дорого? WF - это, по сути, метод, который не несет никаких накладных расходов, если вы объявляете его в коде (в отличие от загрузки, например, из XML). Вы можете использовать класс WorrkflowInvoker, который предоставляет асинхронные методы для выполнения различных рабочих процессов в отдельных потоках (если вам требуется дополнительная информация во время выполнения, например, события жизненного цикла, закладки и т. Д., Используйте WorkflowApplication). См. Использование WorkflowInvoker и WorkflowApplication для получения более подробной информации.

...