在我们的应用程序的许多地方,我们有这样的代码:

using(RAPI rapi = new RAPI())
{
  bool connected = TryToConnectWithTimeout(rapi);
  if(connected)
    DoSomethingWithRapi(rapi);
}

此至今运作良好。 同时,我们从来没有超过1个RAPI实例。直到现在:

但是现在我们要听上RAPI connect事件。 我们正在做这样的:

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物体非常有效。但是,一旦我开始newing了其他RAPI对象时,连接/断开事件似乎火的顺序进行。

会更好工作刚刚1 RAPI的静态实例整个应用程序?你有什么其他的建议?感谢。

有帮助吗?

解决方案

从逻辑上讲,RAPI是PC和设备之间的单个连接。它不为你的应用程序是有意义的,甚至支持多个连接。我会做一个 Singleton类它包装起来RAPI调用和让所有来电的你,让每个人都需要与设备对话,经过一个类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top