我正在使用不使用async
的多線程庫,而是使用傳統線程和回調。如何等待線程回調?
var connection = new SomeLib();
connection.OnConnected += (x) => { /* This is called from separate thread */ }
connection.Connect();
我從一個async
函數調用的代碼,像這樣:
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;
}
如何使用await
有我的功能「等待」 OnConnected
回調被稱爲?
你想要返回什麼字符串?感覺要做的第一件事就是編寫一個'ConnectAsync'方法(或者可能的擴展方法),它可能使用一個'TaskCompletionSource'作爲跟蹤它的一個相當簡單的方法。 –
該字符串不重要。這只是一個玩具的例子。通過編寫ConnectAsync方法,你的意思是什麼?我應該提及,我無法更改我正在使用的庫的來源。 –
@JonSkeet很抱歉,我將刪除我的評論 –