デリゲートを非同期的に呼び出すことができるように、ブロッキング コレクションを使用する必要があります。残念ながら、デリゲートには、構造体と追加の文字列で構成される 2 つのパラメーターがあります。構造体が使用されるのは、Interop を介した外部 C 関数への呼び出しの結果であるためです。
現在、ブロッキング コレクションを使用するときに構造体をコピーしないようにする方法を検討しています。
現在、私のコードは次のようになっています。
ConsumerQueue.Enqueue(new StructTransfer(structValue, stringValue));
Consumer は StructTransfer をアンパックします。
StructTransfer は現在、次のようになっています。
public struct Transfer{
public StructValue structValue;
public string stringValue;
public Transfer(StructValue structValue, string stringValue){
this.structValue=structValue;
this.stringValue = stringValue;
}
}
ブロッキングコレクションを簡単に使用できるように、ポインターを使用してコンストラクターのコピーステートメントを回避する簡単な方法はありますか?