728x90
반응형
728x170
using System;
using System.Net.Http;
using System.Threading.Tasks;
#region 문자열 다운로드하기 (비동기) - DownloadStringAsync(httpClient, uri)
/// <summary>
/// 문자열 다운로드하기 (비동기)
/// </summary>
/// <param name="httpClient">HTTP 클라이언트</param>
/// <param name="uri">URI</param>
/// <returns>문자열 태스크</returns>
public async Task<string> DownloadStringAsync(HttpClient httpClient, string uri)
{
TimeSpan delayTimeSpan = TimeSpan.FromSeconds(1);
for(int i = 0; i < 3; i++)
{
try
{
return await httpClient.GetStringAsync(uri);
}
catch
{
}
await Task.Delay(delayTimeSpan);
delayTimeSpan = delayTimeSpan + delayTimeSpan;
}
return await httpClient.GetStringAsync(uri);
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > TPL' 카테고리의 다른 글
[C#/TPL/.NET5] Task<T> 클래스 : FromException<T> 정적 메소드를 사용해 완료시 예외를 갖는 태스크 생성하기 (0) | 2021.07.11 |
---|---|
[C#/TPL/.NET5] Task 클래스 : CompletedTask 정적 속성을 사용해 이미 성공적으로 완료된 태스크 구하기 (0) | 2021.07.11 |
[C#/TPL/.NET5] Task 클래스 : FromResult<T> 정적 메소드를 사용해 성공적으로 완료된 결과를 갖는 태스크 생성하기 (0) | 2021.07.11 |
[C#/TPL/.NET5] Task 클래스 : Delay 정적 메소드를 사용해 타임아웃시 취소 가능한 태스크 생성하기 (0) | 2021.07.11 |
[C#/TPL/.NET5] Task 클래스 : WhenAny 정적 메소드를 사용해 타임아웃시 작업 취소하기 (0) | 2021.07.11 |
[C#/TPL/.NET5] TransformBlock<TInput, TOutput> 클래스 사용하기 (0) | 2021.07.11 |
[C#/TPL/.NET5] AggregateException 클래스 : Handle 메소드를 사용해 예외 처리하기 (0) | 2021.07.11 |
[C#/TPL/.NET5] Parallel 클래스 : Invoke 정적 메소드를 사용해 병렬 작업 처리하기 (0) | 2021.07.11 |
[C#/TPL] Parallel 클래스 : ForEach 정적 메소드 사용하기 (0) | 2021.07.09 |
[C#/TPL] Task 클래스 : Wait 메소드 사용하기 (교착 상태 발생) (0) | 2021.07.09 |
댓글을 달아 주세요