首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RAPI方法:为整个winforms应用程序提供1个静态实例,而不是创建、连接、处置

RAPI方法:为整个winforms应用程序提供1个静态实例,而不是创建、连接、处置
EN

Stack Overflow用户
提问于 2010-04-17 00:33:09
回答 1查看 233关注 0票数 1

在我们的应用程序中的许多地方,我们都有如下代码:

代码语言:javascript
复制
using(RAPI rapi = new RAPI())
{
  bool connected = TryToConnectWithTimeout(rapi);
  if(connected)
    DoSomethingWithRapi(rapi);
}

到目前为止,这一点运行良好。我们从来不会一次有一个以上的rapi实例。到目前为止:

但现在我们要监听rapi上的连接事件。我们是这样做的:

代码语言:javascript
复制
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对象,connect/disconnect事件似乎就会无序地触发。

在整个应用程序中只有一个静态的RAPI实例会更好吗?你还有什么其他的建议吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-17 01:57:46

从逻辑上讲,RAPI是PC和设备之间的单一连接。让你的应用程序支持多个连接是没有意义的。我会做一个Singleton class,它包装了RAPI调用,并为你做了所有的调用,这样每个需要与设备对话的人都会通过这个类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2654618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档