我有主类“模板”,其中引用了一些处理器“IProcessor”
interface IProcessor
{
void Execute();
}
class Template
{
IProcessor proc1;
IProcessor proc2;
IProcessor proc3;
public Template(IProcessor p1, IProcessor p2, IProcessor p3)
{
proc1 = p1;
proc2 = p2;
proc3 = p3;
}
public void Run()
{
proc1.Execute();
proc2.Execute();
proc3.Execute();
}
}
每个处理器都需要能够将字符串消息发送到“模板”类。“模板”类需要能够将消息重定向到其他对象(可能是 Logger 或 UI)。
'Template' 的 Run method() 可以在单独的线程中启动,而 IProcessor 中的消息可以在 Parallel.Foreach 循环中生成的问题。我的决定合并到使用 BlockingCollection 的 Producer/Consumer 模式实现,但我觉得这对我的问题来说太昂贵了,此外在将到达的消息重定向到其他对象方面存在困难。这个问题有标准解决方案吗?(事件、代表或其他?)