在我们的应用程序的许多地方,我们都有这样的代码:
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();
}
“StartMonitoringRapiConnection”只要我没有开始新建并连接其他RAPI对象就可以正常工作。但是一旦我开始新建其他RAPI对象,连接/断开事件似乎就会失灵。
为整个应用程序只有一个静态RAPI实例会更好吗?你还有其他建议吗?感谢。
答案 0 :(得分:1)
逻辑上,RAPI是PC和设备之间的单一连接。您的应用甚至不支持多个连接也没有意义。我会制作一个Singleton class来收听RAPI电话并为你拨打所有电话,这样每个需要与设备通话的人都会通过那一个电话。