我正在使用 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() 时遇到问题。