2017-09-23 20 views
-3

に変換:私は電話をそのコードを変更したい非同期メソッドは、私は現在、このようなコード持っている非非同期

var list = await ListFolder(client, path); 

private async Task<ListFolderResult> ListFolder(DropboxClient client, string path) 
{ 
    Console.WriteLine("--- Files ---"); 
    var list = await client.Files.ListFolderAsync(path); 

    return list; 
} 

そして、このように呼ばれているが

var list = ListFolder(client, path); 

そしてListFolder方法の内側に待機移動:次のようになります。

+0

ただ、 'ListFolder'から'非同期/ await'を削除し、待機を追加: 'client.Files.ListFolderAsync(パス).Result'または' client.Files.ListFolderAsync(パス).WAIT() ' –

+0

場合あなたは完全なコードとして答えとして投稿したいと思います。私はそれを受け入れ、私の答えを削除します。 –

+0

なぜこれが悪い質問であるのかについてのコメントを投稿するために、ダウンした有権者が迷惑をかける可能性がありますか? –

答えて

-2

これは私のためにコンソールアプリケーションで動作しますが、誰かがより一般的な回答を投稿した場合は、この回答を削除することができます。

private ListFolderResult ListFolder(DropboxClient client, string path) 
{ 
    Console.WriteLine("--- Files ---"); 
    var list = client.Files.ListFolderAsync(path); 
    list.Wait(); 

    return list.Result; 
} 
+0

)を確認してください。コメントしたり、別の答えを投稿してください。 –

+0

多くの場合、(コンソールまたは単体テストを除く)デッドロックを保証するコードを警告なしに提示すると、この提案は悪い答えになります。 (実際には非同期コードを同期的に呼び出す方法がより良い答えがあるのを無視して) –

+1

BTW: 'return client.Files.ListFolderAsync(path).Result'で十分です。 * Wait *の必要はありません。以来、それは1つの回線機能であり、別個の機能である必要はありません。 – Eser

関連する問題