2013-01-18 3 views
2

이와 같은 API 호출의 비동기 버전을 만들지 못하게하는 패턴이 있습니까?Task.Run을 사용하여 비동기 API 만들기

public IItem GetItem(int id) 
{ 
    var result = SomeLengthyServiceCall(id); 
    return result; 
} 

public async Task<IItem> GetItemAsync(int id) 
{ 
    return await Task.Run(() => this.GetItem(id)); 
} 

답변

1

네, 그건 반 패턴입니다. Stephen Toub의 우수 블로그 게시물 asynchronous wrappers for synchronous methods을 참조하십시오.

요약하면 자연스럽게 비동기 메서드에만 비동기 API가 있어야합니다.

관련 문제