Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中异步执行MSCRM工作流#_C#_Asynchronous_Dynamics Crm_Workflow - Fatal编程技术网

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,...);