如何解决如何在C#中异步执行MSCRM工作流
下面是触发C#
mscrm
的{{1}}代码段。
workflow
我可以知道如何将以上执行从public void GenerateWorkflow(string selectedIDs,IOrganizationService service)
{
var request = new OrganizationRequest()
{
RequestName = "GenerateWorkflow",};
request.Parameters.Add("SelectedIDs",selectedIDs);
var response = service.Execute(request);
if (response.Results != null && response.Results.Count > 0)
{
return;
}
}
更改为sync
,而不必在执行下一个请求之前等待响应吗?
谢谢。
解决方法
要在单独的线程池线程上运行GenerateWorkflow
。您可以致电Task.Run
将指定的工作排队以在ThreadPool上运行并返回任务 或
Task<TResult>
处理该工作。
Task.Run(() => GenerateWorkflow(...));
如果您有多个请求要同时运行,并且想要等待它们全部完成,则可以使用Task.WhenAll
。
创建一个任务,当所有提供的任务都完成时,该任务将完成 完成。
var task1 = Task.Run(() => GenerateWorkflow1(...));
var task2 = Task.Run(() => SomethingElse(...));
...
await Task.WhenAll(task1,task2,...);
,
尝试此类:“ ExecuteAsyncRequest”。 将此类的实例传递给Execute方法,该方法返回ExecuteAsyncResponse的实例。 就像这样:service.ExecuteAsyncRequest(request);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。