Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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语言中的同步调用_C#_Synchronous - Fatal编程技术网

C# c语言中的同步调用

C# c语言中的同步调用,c#,synchronous,C#,Synchronous,我在c中有以下API调用,我想使其同步,它应该等到从执行删除逻辑的其他模块返回时再调用。我相信以下代码是您的问题:CallExternalServiceAsync 它应该返回一个任务,如果您将函数声明为异步,则可以等待该任务。否则,如果您只是对等待感兴趣,您可以调用CallExternalServiceAsync….Wait,假设它返回一个任务。如注释中所述,您可以返回一个任务而不是一个void,并使用Wait执行CallExternalServiceAsync方法的调用,假设它是可等待的 pu

我在c中有以下API调用,我想使其同步,它应该等到从执行删除逻辑的其他模块返回时再调用。

我相信以下代码是您的问题:CallExternalServiceAsync


它应该返回一个任务,如果您将函数声明为异步,则可以等待该任务。否则,如果您只是对等待感兴趣,您可以调用CallExternalServiceAsync….Wait,假设它返回一个任务。

如注释中所述,您可以返回一个任务而不是一个void,并使用Wait执行CallExternalServiceAsync方法的调用,假设它是可等待的

public async Task CallDeleteOrderApi()
{
    var responseMsg = await CallExternalServiceAsync(_apiPath, _validatePath, requestHeader);
}
看一看,这说明了如何以及为什么使用异步任务


基本上,只要在事件上指定异步void return on方法声明,例如WinForms上的frm_Load。在自定义方法上,如果只返回一个实际返回任务的void,则始终将其声明为async Task;如果要返回int,则始终将其声明为async Task。

我没有看到任何异步代码?请问我遗漏了什么?你为什么要让它同步?这很奇怪,但请查看您的返回,因为它是async void,并且可能是async任务,当然可以将您的CallerExternalServiceAsync调用为Wait CallerExternalServiceAsyncPublic HttpResponseMessage CallerExternalServiceAsyncString APIRL、string apiPath、FormUrlEncodedContent postContent{var client=new HttpClient{BaseAddress=new UriapiUrl};client.DefaultRequestHeaders.Accept.Clear;client.DefaultRequestHeaders.Accept.Addnew MediaTypeWithQualityHeaderValueapplication/json;//实现后var响应=client.PostAsyncapiPath,postContent.Result;返回HttpResponseMessage;}我在PostSync上有上述CallExternalServiceAsync代码,但它仍然存在wait@VitthalMokhare问题是您必须在CallExternalServiceAsync clas中等待结果。