我有很多這樣的代碼:如何將此代碼轉換爲異步等待?
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