如何从“异步任务"函数返回值? [英] how do I return values from a `async Task` function?
本文介绍了如何从“异步任务"函数返回值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要从下面的async Task testWCF2
函数返回值submitOut
?任何人都可以提供操作指导吗?
I need to return the value submitOut
from async Task testWCF2
function below?Can anyone provide guidance on how to do it?
public static async Task testWCF2(string xmlConfig)
{
string submitOut;
using (var client = new System.Net.Http.HttpClient())
{
var url = "http://server:8100/api/SoftwareProductBuild";
var content = new StringContent(xmlConfig, Encoding.UTF8, "application/xml");
var response = await client.PostAsync(url, content);
if (response.IsSuccessStatusCode)
{
var responseBody = await response.Content.ReadAsStringAsync();
submitOut = responseBody;
}
else
{
submitOut = string.Format("Bad Response {0} \n", response.StatusCode.ToString());
submitOut = submitOut + response;
}
}
}
public string QlasrSubmit(List<XMLSiInfo> xmlConfigs)
{
string submitOut = "QLASR: ";
foreach (XMLSiInfo xmlConfig in xmlConfigs)
{
submitOut = submitOut + "\n" + testWCF2(xmlConfig.xml).ToString();
}
return submitOut;
}
public string QlasrPostcommit(string si, string sp, string variant = null)
{
.............
string submitStatus = QlasrSubmit(siInfo);
....
return submitStatus;
}
推荐答案
将返回类型更改为Task<string>
,例如:
Change your return type to Task<string>
, as such:
public static async Task<string> testWCF2(string xmlConfig)
然后您就可以return submitOut;
一旦返回一个值,就可以使用await
来使用它:
Once you are returning a value, then you consume it using await
:
public async Task<string> QlasrSubmit(List<XMLSiInfo> xmlConfigs)
{
string submitOut = "QLASR: ";
foreach (XMLSiInfo xmlConfig in xmlConfigs)
{
submitOut = submitOut + "\n" + await testWCF2(xmlConfig.xml);
}
return submitOut;
}
我建议阅读async
的基础知识.
I recommend reading up on the basics of async
.
这篇关于如何从“异步任务"函数返回值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文