我正在研究一种 C# 编程,该编程相当适合该语言。我想我对一般的面向对象编程有很好的理解,以及运行多线程意味着什么,在高层次上,但实际实现我是如所说的擦洗。
我要做的是创建一个工具,该工具将使许多线程独立运行并相互交互,每个线程都将服务于自己的任务并可以调用其他线程。
我确保通信的策略(在不同线程同时发生多个更新时不会丢失任何东西)是在每个类上创建一个可以称为外部的类似假脱机的任务,并将任务添加到给定线程,或为这些线程添加假脱机服务。我不确定我是否应该将它放在班级或外部,并让班级本身为新任务调用假脱机并跟踪假脱机。在这里,我特别考虑如何在空线轴获得任务时向班级发出信号(侦听器方法,因此如果任务想要在新东西到达时被唤醒,则可以订阅池),或者“每 X 秒检查一次,如果出来任务和下一个任务未安排”的方法
创建这个的好策略是什么,我应该在实际班级还是外部创建这个?实现中的关键区域是什么,因为“忙等待检查”允许它只在添加新作业和删除实际 spool 上的作业,而信号将需要添加/删除作业,还需要 goto sleep on 信号是关键的,并且突然增加了对如果进入关键区域的假脱机的高要求,因为这可能会导致阻塞,导致其他阻塞,以及可能的不可预见的死锁。