如何使用“async Task<string>
”从方法返回数据。
我尝试按照以下链接使用,
How to handle return values in async function
有人可以提供答案吗?
使用的方法,
Public Class module
{
private static async Task<string> a<T>(string x1, object file1)
{
HttpResponseMessage x;
x = await b.doGet(function);
string ret = await x.Content.ReadAsStringAsync();
return ret; //JSON Data
}
}
呼叫,
public string get()
{
Task<string> cnt = module.a<string>(x, file());
MessageBox.Show(cnt.Result); // Loading, but not showing the result
}
由于 迪内希
答案 0 :(得分:3)
您的签名是正确的,并返回Task<string>
这笔交易是在您致电a
时,您有两种方式获得string
:
public string get() // For option 2 say public async Task<string> get()
{
//Option 1 - Using Task<string>
Task<string> cnt = module.a<string>(x, file()); // or var cnt = ...
MessageBox.Show(cnt.GetAwaiter().GetResult()); // Return the string you want
//Option 2 - Using await
MessageBox.Show(await module.a<string>(x, file())); // Return the string you want
}