我正在使用WF来运行活动,我想在与调用线程相同的线程上同步调用活动。我如何使用WorkflowInvoker.Invoke来做到这一点?以下是我的代码片段:
public int RunTransactionActivity(ActivityInputBundle inputBundle)
{
int returnCode = 100;
ActivityFactory actFactory = new ActivityFactory();
NativeActivity NA = null;
NA = actFactory.GetTransactionActivity(inputBundle.ActivityName);
Dictionary<string, object> inputs = new Dictionary<string, object>();
inputs.Add("InputBundle", inputBundle);
IDictionary<string, object> output;
output = WorkflowInvoker.Invoke(NA, inputs);
returnCode = Int32.Parse(output["ReturnCode"].ToString());
return returnCode;
}
问题是,似乎活动(NA)在不同的线程上运行。有没有办法让我在同一个线程上运行活动?我已经阅读了可以使用SynchronizationContext与WorkflowApplcation一起使用的文章,但是我在使用带有输出/返回参数的WorkflowApplication.Run()时遇到了问题。