C#で並列パイプラインを作成したいと思います。IOperationという名前のインターフェイスを宣言しました。
public interface IOperation<Tin, Tout>
{
BlockingCollection<Tout> BlockingCollection(IEnumerable<Tin> input);
}
次に、これらの操作の複数を並行して実行するクラスを作成します。私はこれでバガンします:
public class Pipeline : IPipeline
{
private List<IOperation<Object, Object>> operations = new List<IOperation<Object, Object>>();
private List<BlockingCollection<Object>> buffers = new List<BlockingCollection<Object>>();
public void Register(IOperation<Object, Object> operation)
{
operations.Add(operation);
}
public void Execute()
{
}
}
しかし、操作と操作間のバッファーを保存するための解決策は見つかりません。これらはすべて異なるジェネリック型を持っているためです。誰かアイデアがありますか?