我正在使用不使用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很抱歉,我将删除我的评论 –