ExecuteAsync()线程死锁?

时间:2017-03-11 18:14:48

标签: c# wpf youtube youtube-data-api

我的wpf应用程序挂起在以下行:

  var channelsListResponse =  await channelsListRequest.ExecuteAsync();

从YouTube api v3参考示例代码中获取的代码在控制台应用中运行良好,但在wpf中运行不正常。如何在wpf中解决此死锁? 我尝试将其更改为channelsListRequest.Execute(),但仍然存在同样的问题。

 private async Task Run()
    {
        UserCredential credential;
        using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
        {
            credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                // This OAuth 2.0 access scope allows for read-only access to the authenticated 
                // user's account, but not other types of account access.
                new[] { YouTubeService.Scope.YoutubeReadonly },
                "user",
                CancellationToken.None,
                new FileDataStore(this.GetType().ToString())
            );
        }

        var youtubeService = new YouTubeService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = this.GetType().ToString()
        });

        var channelsListRequest = youtubeService.Channels.List("contentDetails");
        channelsListRequest.Mine = true;

        // Retrieve the contentDetails part of the channel resource for the authenticated user's channel.
        var channelsListResponse = await channelsListRequest.ExecuteAsync();

   ...

0 个答案:

没有答案