アプリケーションの多くの場所に、次のようなコードがあります。
using(RAPI rapi = new RAPI())
{
bool connected = TryToConnectWithTimeout(rapi);
if(connected)
DoSomethingWithRapi(rapi);
}
これはこれまでのところうまくいきました。一度に複数の 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 の静的インスタンスを 1 つだけ持つ方がうまくいくでしょうか? 他にアドバイスはありますか?ありがとう。