解決策はたくさん検索しましたが、何も見つかりませんでした。私は複数のデバイスからビデオストリームを受信するサーバーアプリケーション(.NET)を持っています。ストリームをデコードして処理するために使用しているライブラリはスレッドセーフではありません。私のライブラリの名前はVideoProcessorクラスの "VideoProcessor"です。イベントハンドラメソッドの一意のオブジェクト名を持つクラスインスタンス化(実行時)
私の主なプログラムでは、デバイスごとにVideoProcessorのインスタンスを作成したいと考えています。私の最初のアプローチは、新しいデバイスのVideoProcessorをインスタンス化する接続イベントハンドラを用意することでした。しかし、複数のデバイスが接続しようとすると、うまく動作しません。以下のコードスニペットを参照してください:
static void HandleVideoConnectionEvent(int port, string deviceId)
{
VideoProcessor vid = new VideoProcessor(port, deviceId);
}
ご覧のとおり、新しいデバイスが接続するたびに、私はvidを上書きします。私はアイディアを使い果たした。私はVideoProcessorの別のインスタンスを各デバイス用に実行する必要があり、どのインスタンスがどのデバイスに使用されているかを把握しておく必要があります。私の最後の希望は、新しいデバイス接続用の新しいプロセスを生成し、deviceIDとその対応するPIDのリストを維持することです(これは.NETで可能かどうかわかりません)。助けてください。これを行うためのきちんとした方法が必要です。あなたの時間のために非常に前もってありがとう。
よろしくお願いいたします。
あなたはVideoProcessorオブジェクトのプールを手で求めていますか? 次に、ビデオプロセッサタイプのリスト<>を持ち、その中のすべてのオブジェクトを維持します。このプールリストを追跡するマネージャーが必要です。 – Zenwalker