簡體   English   中英

ASP.NET任務異步WaitingForActivation

[英]ASP.NET Task Async WaitingForActivation

我正在嘗試將發布請求發送到第三方API並檢索UserToken。 這是執行此操作的代碼:

        [HttpPost]
        private async Task<string> GetUserToken()
        {
            using (var client = new HttpClient())
            {
                var parameters = new Dictionary<string, string>
                {
                    {"grant_type", "client_credentials" },
                    {"client_id", _clientId },
                    {"client_secret", _clientSecret }
                };
                var content = new FormUrlEncodedContent(parameters);

                var response = await client.PostAsync(_baseUrl, content);
                var responseString = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseString);
                UserTokenModel userToken = JsonConvert.DeserializeObject<UserTokenModel>(responseString);
                Console.WriteLine(userToken.access_token);
                return userToken.access_token;
            }
        }

當我在控制台應用程序中對此進行測試時,它會打印出正確的UserToken值。 但是,當我對該方法進行方法調用並在調試器中逐步調試它時,將設置Usertoken的值

var userToken = GetUserToken(); Status: WaitingForActivation Method:"{null}" Result:"{Not yet Computed}"

我不太確定為什么會這樣,但是結果是,在其他方法中使用時,該值未設置為正確的值。 任何幫助將不勝感激!

GetUserToken()不返回用戶令牌。 它返回一個代表異步工作的Task ,其結果是用戶令牌。

本質上,以下代碼:

var userToken = GetUserToken();

...毫無意義。

您真正想要的是:

var userToken = await GetUserToken();
// Do something with the token.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM