我在c#中具有“跟随API调用”,我想使其成为“同步”,它应该等到它从执行删除逻辑的其他模块中返回。
答案 0 :(得分:0)
我相信以下代码是您的问题:CallExternalServiceAsync(..)
它应该返回一个任务,如果您声明函数异步,则可以等待。否则,如果您只想等待,则可以调用CallExternalServiceAsync(...)。Wait(),假设它返回了Task。
答案 1 :(得分:0)
如评论中所述,您可以返回一个Task
而不是一个void
,并在等待时执行CallExternalServiceAsync
方法的调用,并假设它是可等待的。
public async Task CallDeleteOrderApi()
{
var responseMsg = await CallExternalServiceAsync(_apiPath, _validatePath, requestHeader);
}
看看this question,它解释了如何以及为什么使用async Task
。
基本上,只需指定async void
在事件上时在方法声明上返回即可(例如WinForms上的frm_Load
)。在自定义方法上,如果只返回async Task
(实际上是返回void
),则始终将其声明为Task
;例如,如果要返回async Task<int>
,则始终将其声明为int
返回df.dropDuplicates()
。