在我们的应用程序的许多地方,我们都有这样的代码:
using(RAPI rapi = new RAPI())
{
bool connected = TryToConnectWithTimeout(rapi);
if(connected)
DoSomethingWithRapi(rapi);
}
到目前为止,这运作良好。我们一次不会有超过 1 个 rapi 实例。到目前为止:
但是现在我们要监听 rapi 上的连接事件。我们这样做是这样的:
void StartMonitoringRapiConnection()
{
_rapi = new RAPI();
_rapi.RAPIConnected += new RAPIConnectedHandler(_rapi_RAPIConnected);
_rapi.RAPIDisconnected += new RAPIConnectedHandler(_rapi_RAPIDisconnected);
_rapi.Connect(false,-1);
}
private void _rapi_RAPIConnected()
{
DoWorkWhenRapiConnects();
}
private void _rapi_RAPIDisconnected()
{
//Listen for the next time that rapi connects
_rapi.Connect(false,-1);
DoWorkWhenRapiDisconnects();
}
只要我不开始新建和连接其他 RAPI 对象,“StartMonitoringRapiConnection”就可以很好地工作。但是一旦我开始更新其他 RAPI 对象,连接/断开连接事件似乎会乱序触发。
整个应用程序只有 1 个静态 RAPI 实例会更好吗?你还有什么建议吗?谢谢。