TPL을 .NET 4와 함께 사용하여 미래를 다루는 API를 설계하는 방법을 결정하려고합니다. 내가 비동기 패턴을 모방하는 것이었다에 발생하지만, End(IAsyncResult)
방법이없는 하나의 가능성 : 이와 같이이 TPL 관용어가 있습니까?
public Task<int> BeginGetAge()
{
// create and return task
}
public int GetAge()
{
return this.BeginGetAge().Result;
}
는 발신자가 차단 또는 GetAge()
의 버전을 비 차단 호출 여부를 결정할 수 있습니다. 또한, 그들은 미래에 접근 할 수 있기 때문에 그 위에 연속성을 구축 할 수 있습니다.
이 관용구가 유효합니까? 명백한 결점이나 문제가 있습니까? 공식 이름이 있나?
두 번째 사례는 '기다리는 것'으로 크게 도움이됩니다. – user7116
FYI, Stephen Toub이 (비동기 메서드에 대한 동기화 래퍼 제공) - tl; dr avoid this에 게시했습니다. http://blogs.msdn.com/b/pfxteam/archive/2012/04/13/10293638을 참조하십시오. aspx 및 http://blogs.msdn.com/b/pfxteam/archive/2012/03/24/10287244.aspx –