【发布时间】:2014-09-02 14:46:43
【问题描述】:
我是 TPL 数据流的新手,如果这是一个简单的问题,请见谅。
我有一个采用基类的输入缓冲区块。如何从那里分支到基于派生类型的块?比如:
var inputBlock = new BufferBlock<EventBase>();
//if EventBase is Meeting then go to block X
//if EventBase is Appointment the go to block Y
谢谢!
【问题讨论】:
-
你没有。这就是多态性的全部意义所在。您应该让每个派生类型覆盖基类型成员,以便使用基类型成员区分行为。
-
所以你说没有办法做到这一点?我可以在循环中的 TPL 数据流之外执行它,并且只是 if(EventBase is Meeting){},我要问的是如何在数据流块中完成它?我需要自定义块吗?
-
我不是告诉你这是不可能的,我是告诉你这是个坏主意。这表明设计不佳。你不应该这样做。相反,您应该通过使用多态性来设计块以支持任何类型的
EventBase。
标签: c# .net task-parallel-library tpl-dataflow