async
을 사용하지 않고 기존 스레드와 콜백을 사용하는 멀티 스레드 라이브러리를 사용하고 있습니다.스레드 콜백을 대기하는 방법은 무엇입니까?
그래서 같이 async
함수에서이 코드를 호출 오전 을
var connection = new SomeLib();
connection.OnConnected += (x) => { /* This is called from separate thread */ }
connection.Connect();
을 을 :
public async Task<Boolean> MyFunc()
{
var connection = new SomeLib();
connection.OnConnected += (x) => { /* This is called from separate thread */ }
connection.Connect();
// ...
// Need to return after OnConnected has been fired.
return true;
}
가 어떻게이 OnConnected
콜백은 "대기"내 기능을 가지고 await
를 사용하여 호출 될?
반환 할 문자열은 무엇입니까? 제일 먼저 할 일은'TaskCompletionSource'를 추적하는 합리적으로 간단한 방법으로 사용할 수있는'ConnectAsync' 메소드 (또는 확장 메소드)를 작성하는 것입니다. –
문자열은 중요하지 않습니다. 이것은 단지 장난감의 예일뿐입니다. ConnectAsync 메서드를 작성하면 무슨 뜻입니까? 나는 내가 사용하고있는 도서관의 출처를 바꿀 수 없다는 것을 언급해야한다. –
@JonSkeet 죄송합니다. 내 의견을 제거하겠습니다. –