Может ли хост-приложение связываться с выполняющимся рабочим процессом? - PullRequest
0 голосов
/ 01 мая 2018

Возможно ли установить связь между хостом приложения и выполняемым в данный момент рабочим процессом, инициированным приложением?

Сценарий, который у меня есть, заключается в том, что рабочий процесс будет инициирован с некоторым контекстом ... и затем перейдет в цикл, ожидая изменений в этом контексте. Изменение контекста должно происходить из самого приложения - оно будет эффективно обновлять контекст, чтобы цикл while мог завершиться и рабочий процесс мог завершиться.

Я нашел здесь старую статью, которая выглядит как решение, но также выглядит так, как будто она использует устаревшие классы, и я не уверен, что эта функциональность больше поддерживается (например, в .NET 4.6):

https://msdn.microsoft.com/en-us/library/dd695719.aspx

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

да, способ достичь этого - через Действия с сообщениями .

Операции обмена сообщениями позволяют рабочим процессам отправлять и получать сообщения WCF. Таким образом, вы можете обмениваться данными с собственной службой WCF из рабочего процесса. Обновление статуса или запрос на одобрение для дальнейшего продвижения в WF.

Лучший пример, который я использовал ранее: this

0 голосов
/ 01 мая 2018

Если вы используете приложение WorkflowApplication, вы можете передавать объекты в рабочий процесс.

т.е. WorkflowApplication _workflowApplication = new WorkflowApplication(new workflowName, iDictionary)

Вы можете передать переменную ref в приложение рабочего процесса через IDictionary. Затем вы можете изменить его значение вне рабочего процесса, но проверить значение внутри цикла рабочего процесса

Или передайте делегат методу в приложение рабочего процесса через IDictionary, затем вызовите делегат внутри цикла рабочего процесса и действуйте на возвращаемое значение.

...