2

私は今、外部DLLの束を使用してどこかのサーバーに接続するアプリケーションに取り組んでいます。奇妙なことに、これらの DLL の公開されたメソッドは接続を許可しますが、切断またはクローズは許可しません。これらのライブラリは、1 つのチャンクでサーバーに対して後続の呼び出しを何度も行わない限り正常に機能するため、X 回の呼び出し後に切断して再接続することにしました。

しかし、ここに問題があります。切断方法が指定されていないため、切断できません。私の質問は、この管理されていないオブジェクトを完全に削除して、再度作成できるようにするにはどうすればよいですか?

4

3 に答える 3

1

C# でアンマネージ リソースを使用している場合は、ブロックを使用してアンマネージ リソースを実装IDisposableし、作成および破棄するクラスを使用して対話する必要があります。using

接続を切断できない場合は、接続しているものによっては、アンマネージ リソースを含む変数を null に設定すると、その一部がクリアされることがあります。実際には、適切な切断/破棄方法なしでできることはあまりありません。

于 2012-08-09T11:57:24.357 に答える
0

サーバーへの基になる接続を手動で閉じることができます。あなたが消費しているサービス (HTTP TCP など?) について詳しく知らなければ、それを行う方法についてこれ以上あなたを助けることはできません。トレース (wireshark など) を配置して、何が転送されているかを確認できます。

肝心なのは、彼らのソフトウェアが壊れているということです。出品者に連絡できませんか?

于 2012-08-09T12:20:44.947 に答える
0

これに対して私が見つけた最善の解決策は、外部 DLL への各呼び出しを独自のスレッドで実行することでした。これは、スレッドが終了したときに最終的に強制終了されました。更新された DLL にアクセスできなかったため、これが機能した唯一の解決策でした。

于 2012-10-10T10:35:35.090 に答える