RAPIアプローチ:1つのWinFormsアプリ全体の静的インスタンスvs作成、接続、処分

StackOverflow https://stackoverflow.com/questions/2654618

質問

アプリケーションの多くの場所では、次のようなコードがあります。

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オブジェクトを新しくして接続し始めない限り、非常にうまく機能します。しかし、他のRAPIオブジェクトの新規の新規を開始すると、接続/切断イベントが故障しているように見えます。

アプリ全体でRAPIの静的インスタンスを1つだけ持っている方が良いでしょうか?他にアドバイスはありますか?ありがとう。

役に立ちましたか?

解決

論理的には、RapiはPCとデバイスの間の単一の接続です。アプリが複数の接続をサポートすることも意味がありません。私は作ります シングルトンクラス これにより、Rapiの呼び出しが締めくくられ、デバイスと話をする必要があるすべての人がその1つのクラスを通過するように、すべての電話が必要になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top