2012-06-26 3 views
1

동기식 라이브러리 메소드를 호출하려고합니다. 새 asyncawait 기능을 사용하고 싶습니다만 라이브러리가 비동기를 지원하지 않으므로 (작업을 반환하지 않음) 확실하지 않습니다.라이브러리 메소드를 비동기 적으로 호출하는 방법은 무엇입니까?

할 방법이 있습니까 아니면 을 수행하는 래퍼를 만들어야합니까??

+0

정확히이 방법은 동기식으로 수행됩니까? 작업은 또한 .net 4.0입니다. – Patrick

+0

async/await를 사용하려면 라이브러리 메서드를 호출하는 async로 표시된 메서드가있는 래퍼 클래스를 작성해야합니다. – Mangist

+0

왜 스레딩 API를 사용하여 자신의'BeginXXX'' EndXXX' 메소드를 구현하지 않습니까? – Tudor

답변

2

동기 코드는 Task.Run 내부에서 호출하여 백그라운드 스레드에서 실행할 수 있습니다.

+0

사실,하지만 [공식 추천] (http://blogs.msdn.com/b/pfxteam/archive/2012/03/24/10287244.aspx)을 고려해야합니다. –

+0

['Task.Run'] (http://msdn.microsoft.com/en-us/library/hh194919 (v = vs.110))은 .NET Framework 4.5에서만 사용할 수 있습니다. – gliderkite

1

이와 비슷한?

using System.Threading.Tasks; 

new Task<bool>(() => 
{ 
    // Do something 
    return true; 
}).Start(); 
관련 문제