나는 다음과 같은 코드를 많이 가지고 : 당신이 볼 수 있듯이이 코드를 비동기로 변환하는 방법?
var feed = new DataFeed(host, port);
feed.OnConnected += (conn) =>
{
feed.BeginLogin(user, pass);
};
feed.OnReady += (f) =>
{
//Now I'm ready to do stuff.
};
feed.BeginConnect();
, 내가 비동기 작업을 수행하는 일반적인 방법을 사용합니다. async await
을 사용하려면이 코드를 어떻게 변경합니까? 다음과 같은 형식이 바람직합니다.
public async void InitConnection()
{
await feed.BeginConnect();
await feed.BeginLogin(user, pass);
//Now I'm ready
}
BeginXXX 작업이 IAsyncResult를 반환합니까? –
@SergeyBerezovskiy : 예를 들어'BeginConnect'는 void를 반환합니다. 내부적으로'Socket.BeginConnect'를 호출하고'Socket.EndConnect'가 호출되기를 기다립니다. 호출되면 OnConnected 이벤트가 시작됩니다. – nakiya
비동기적인 목적에 맞지 않는 그런 종류의가요? 'Connect'를 철저히 부르는 것과 다른 점은 무엇입니까? – Luaan