async Task <tresult> - 返回值

时间:2018-03-02 11:57:31

标签: c#

如何使用“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
}

由于 迪内希

1 个答案:

答案 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
}