Выходные данные WorkflowApplication - PullRequest
0 голосов
/ 07 июля 2011

Чтобы получить выходные данные от Workflowinvoker, мы должны использовать

          var output = WorkflowInvoker.Invoke(new Activity1() { str = night  });
          HttpContext.Current.Response.Write(output["res"]);

, но что мы должны использовать для команды WorkflowApplication?Я пытался так же, как Workflowinvoker, но он не работает.

1 Ответ

0 голосов
/ 07 июля 2011

Вам необходимо установить обратный вызов Completed . WorkflowApplication выполняет рабочий процесс асинхронно, тогда как WorkflowInvoker блокируется до его завершения.

var flag = new ManualResetEvent(); 
var app = new WorkflowApplication(activity);
Dictionary<string,object> results = null;
app.Completed = x =>
{
    results = x.Outputs;
    flag.Set();
};
app.Run();
// run the application, wait for it to complete
flag.WaitOne(Timeout.Infinite);
// Completed has executed at this point
...