C# 如何在C中异步执行MSCRM工作流#
下面是我的C# 如何在C中异步执行MSCRM工作流#,c#,asynchronous,dynamics-crm,workflow,C#,Asynchronous,Dynamics Crm,Workflow,下面是我的C#代码片段,它触发了mscrm工作流 public void GenerateWorkflow(string selectedIDs, IOrganizationService service) { var request = new OrganizationRequest() { RequestName = "GenerateWorkflow", }; request.Parameters.Add("Se
C#
代码片段,它触发了mscrm
工作流
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
更改为async
,而不必在执行下一个请求之前等待响应吗
谢谢。在单独的线程池线程上运行
GenerateWorkflow
。你可以打电话
对要在线程池上运行的指定工作进行排队,并返回任务
或任务
处理该工作
如果有多个请求要同时运行,并且要等待它们全部完成,那么可以使用
创建一个任务,该任务将在提供的所有任务完成后完成
完成
试试这个类:“ExecuteAsyncRequest”。
将此类的实例传递给Execute方法,该方法返回executeAsynResponse的实例。
就像这样:service.ExecuteAsyncRequest(请求)
Task.Run(()=>GenerateWorkflow(…)代码>另一方面,if语句毫无意义,因为它是hank you@The General。我可以知道使用task.Run()
是否可以多次执行GenerateWorkflow
任务吗?因此,我将同时执行多个GenerateWorkflow
请求,而不需要先完成一个请求,然后再完成另一个请求。这取决于api,但就c而言,这是可以的
Task.Run(() => GenerateWorkflow(...));
var task1 = Task.Run(() => GenerateWorkflow1(...));
var task2 = Task.Run(() => SomethingElse(...));
...
await Task.WhenAll(task1,task2,...);