console app main方法从async返回字符串任务错误

时间:2017-01-25 16:18:43

标签: c# asynchronous task

在我的c#控制台应用程序中,我有一个async任务。我想在运行任务时从中返回string。我编写它的方式出了问题。

错误讯息:

  

'await'运算符只能在异步方法中使用。考虑   使用'async'修饰符标记此方法并更改其方法   将类型返回“任务”。

以下是代码:

static void Main(string[] args)
{        
  string t1 = await DownloadToken(webserverLocal, tokenLocal);
}

static async Task<string> DownloadToken(string server, string token)
{
    using (var client = new HttpClient())
    {
        var url = server + "token";
        var parameters = new Dictionary<string, string> { { "username", usernameMain }, { "password", passwordMain }, { "grant_type", "password" } };
        var encodedContent = new FormUrlEncodedContent(parameters);
        var response = await client.PostAsync(url, encodedContent).ConfigureAwait(false);
        if (response.StatusCode == HttpStatusCode.OK)
        {
            string content = await response.Content.ReadAsStringAsync();
            JToken entireJson = JToken.Parse(content);
            JProperty jName = entireJson.First.Value<JProperty>();
            if (jName.Name == "access_token")
            {
                return jName.Value.ToString();                  
            }
        }
        else
        {
            System.Windows.Forms.MessageBox.Show("ERROR: DownloadToken FAILED!!!", "ERROR");
            Environment.Exit(0);
        }
    }
    return null;
}

其他相似的帖子似乎没有将字符串返回给main方法。

0 个答案:

没有答案