새 ASP.NET 웹 API HttpClient가 저에게 이상한 결과를주었습니다. 여기 내 코드는 다음과 같습니다.HttpClient GetStringAsync - 결코 돌아 오지 않습니다.
class Program {
static async void Main(string[] args) {
var address = "http://localhost:3895/api/urls";
Console.WriteLine(await getStringAsync(address));
Console.ReadLine();
}
public static async Task<string> getStringAsync(string uri) {
var httpClient = new HttpClient();
return await httpClient.GetStringAsync(uri);
}
}
이것은 결코 돌아 오지 않으며 콘솔이 갑자기 나타나서 사라집니다. 아래 코드를 변경하면 다음과 같이 작동합니다.
static void Main(string[] args) {
var address = "http://localhost:3895/api/urls";
Console.WriteLine(getString(address));
Console.ReadLine();
}
public static string getString(string uri) {
var httpClient = new HttpClient();
return httpClient.GetStringAsync(uri).Result;
}
어떤 점이 좋을까요?
컴파일조차하지 않습니다. 진입 점 ('Main')은 비동기가 될 수 없습니다. CS4009 오류로 실패합니다. – vcsjones
@vcsjones 비동기 CTP에서 허용됩니다 (하지만 나쁜 생각) – hvd
@hvd 흥미 롭습니다. 그들이 지금 그것을 거부하는 것이 가장 좋습니다. – vcsjones