我正在使用带有阻塞队列的单个生产者-单个消费者模型。我希望生产者在完成生产后等待队列清空后再返回。
我实现了Marc Gravell建议的BlockingQueue。
在我的模型中,生产者(渲染器)使用事件来通知工作人员(打印机)何时渲染文件(工作人员将项目排队)以及每个文件都已被渲染(完成)。
现在,当渲染器完成时,方法结束并且工作人员被杀死,所以我最终得到了 10-15 个尚未打印的渲染文件。
我希望完成的事件处理程序阻塞,直到队列被清空,例如,当所有文件都被打印时。我想添加类似于“WaitToClose()”的方法,该方法将阻塞直到队列为空。
(设置工作线程会IsBackground = true
有所作为吗?)