0

我有主类“模板”,其中引用了一些处理器“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 模式实现,但我觉得这对我的问题来说太昂贵了,此外在将到达的消息重定向到其他对象方面存在困难。这个问题有标准解决方案吗?(事件、代表或其他?)

4

0 回答 0