2016-09-18 4 views
1

Ich verwende eine HttpClient, die nur asynchrone Methoden unterstützt. Muss ich await sie in der aufrufenden Methode (nicht in der asynchronen Methode selbst, muss ich auf die Aufrufe in HttpClient Methoden warten, soweit ich weiß)?Muss ich auf eine asynchrone Methode warten?

Ich brauche Multithreading wirklich nicht in diesem Projekt. Ich würde gut blockieren und warten, bis ich eine Antwort von HttpClient bekomme, da ich die Daten sowieso haben muss. Dies ist eine Console Anwendung.

+0

überprüfen Sie dies: http://Stackoverflow.com/q/14455293/3956100 – Niklas

+0

Wenn Sie ein Ergebnis zurück benötigen - Sie 'erwarten' dafür. – zerkms

Antwort

3

Nein, nichts erfordert await den Anruf. Der Anruf gibt nur eine Task<T> an Sie zurück, anstatt eine T direkt. Wenn Sie die Result Eigenschaft auf der Task nennen:

var result = client.MakeCallAsync().Result; 

Sie es sagen „Ich interessiere mich nicht, wenn es blockiert, ich meinen Code wollen (und dieser Thread), hier zu warten, bis dies geschehen ist.“

1

Ich brauche Multithreading wirklich nicht in diesem Projekt.

async ist über Asynchronität, nicht Multithreading.

Ich würde gut blockieren und warten, bis ich eine Antwort von HttpClient bekomme, da ich die Daten sowieso haben muss. Dies ist eine Konsolenanwendung.

In diesem Fall würde ich nur sagen, alles synchron zu halten. Verwenden Sie WebClient statt HttpClient.

Verwandte Themen